10
votes

Déboguer une instance de rôle unique avec émulateur de calcul Azure

Je construis une application qui sera courante sur Azure. Ma solution Visual Studio contient plusieurs projets de rôle azur. Lors du débogage localement, j'utilise l'émulateur de calcul Azure.

Pour commencer le débogage, je suis ces étapes:

  1. I Cliquez avec le bouton droit de la souris sur mon projet Azure et cliquez sur Définir comme projet de démarrage.
  2. J'appuie sur F5 pour lancer le débogueur.

    Que se passe-t-il maintenant, c'est que l'émulateur / VS2010 lance mes rôles Web et mes rôles de travailleurs, même si je ne souhaite que déboguer un rôle de travailleur unique pour le moment. Souvent, lors de la rédaction du code de traitement des antécédents dans mon rôle de travail, je suis intéressé à passer à travers ce code sans démarrer le rôle Web, lancez Internet Explorer et ainsi de suite.

    Y a-t-il une manière convaincante pour que le débogueur ne lance que l'une des instances de rôle et non toutes?

    Je pense à créer un projet séparé dans ma solution d'application de la console de type, où je charge les mêmes assemblages que dans mon rôle travailleur et exécute le même code.


0 commentaires

3 Réponses :


4
votes

Je pense que vous pouvez le faire par:

  • Créez un nouveau projet de cloud Azure dans votre solution
  • Ajouter juste le rôle de travailleur à ce projet de cloud
  • Définissez ce projet Cloud comme projet de démarrage

    Cela vous incitera simplement au travailleur que vous êtes intéressé par


0 commentaires

7
votes

L'émulateur (similaire à Azure lui-même) fonctionne uniquement sur le concept d'un "service en nuage". Ainsi, lorsque vous lancez avec le débogage, il va lancer tout ce qui est défini dans votre projet de service de cloud (.ccproj). Cela imite azur 100%, c'est pourquoi cela se produisait, mais je peux certainement voir où votre scénario serait utile.

Peu d'options, en fonction de vos besoins.

Si vous devez tester des spécificités d'azur (AKA, il doit fonctionner dans l'émulateur)
  • Créez un deuxième fichier de solution, créez un nouveau service Cloud ici, ajoutez votre projet. J'aime cette option car les projets / rôles eux-mêmes restent intacts.

  • Ce que Stuart suggéra devant moi, créez un deuxième projet de cloud, défini comme démarrage, exécutez cela.

  • similaire à ci-dessus, créez un deuxième projet, mais ne vous inquiétez pas du démarrage. Vous pouvez cliquer avec le bouton droit de la souris sur n'importe quel projet, allez à déboguer et sélectionnez Démarrer avec débogage et réaliser ce que F5 fait sans contraignation de F5 à cette solution

    Si vous n'avez pas besoin de tester des spécificités d'azur (c'est-à-dire que vous ne faites que tester le rôle)
    • Faites un clic droit sur le projet de rôle, débogage, Commencez par le débogage de cette façon, toute la solution reste intacte et que vous testez simplement la logique


2 commentaires

Mais si vous supprimez temporairement un rôle, vous perdrez tous ses paramètres de configuration, les paramètres de stockage locaux, les points d'extrémité déclarés, etc. Il peut être préférable de commenter les choses dans ServiceFinition.csdef et ServiceConfiguration .cscfg à la place.


Oui, je devrais essayer celui-là avant de recommander. Je l'ai supprimé de ma liste, car les autres suggestions sont plus appropriées à ses besoins.



-3
votes

une solution plus facile serait d'ouvrir le fichier ServiceConFiguration.cscfg et de définir la propriété "Instances> Compter" sur "0", pour tous les rôles que vous ne voulez pas exécuter (cela ne fonctionne que dans l'émulateur de calcul et pas sur le nuage d'azur).

De cette façon, vous gardez votre solution intacte et vos configurations en sécurité, tout en les omettant de l'émulateur de calcul pendant la période d'exécution.


1 commentaires

Cela n'a pas réellement fonctionné pour moi - il échoue avec "le nombre d'instances de 0 n'est pas pris en charge dans les déploiements vers Windows Azure"