9 votes

Azure : Rôle de travailleur bouclant à travers le "recyclage"

Je travaille actuellement sur un projet Azure qui fonctionne à 100 % en local avec des ressources d'émulateur. Je suis maintenant en train de déployer un rôle de travailleur, mais je rencontre un problème que je ne sais pas comment résoudre.

Lors du déploiement du rôle de travailleur dans mon portail Azure, les deux instances bouclent continuellement en mode "recyclage".

Je peux essayer de me connecter en RDP au rôle, mais je n'ai qu'environ une minute pour regarder autour de moi avant que la connexion se ferme, je suppose en raison du recyclage.

Après quelques recherches, il ne semble pas s'agir d'un problème très courant. Y a-t-il quelque chose de trivial que je néglige et qui pourrait causer ce problème ? Comment procéderiez-vous pour résoudre ce problème ? Merci pour votre temps :)

5voto

AvkashChauhan Points 14572

En cas de référence manquante, vous pouvez résoudre ce problème en :

Décompressez votre fichier CSPKG, puis décompressez à nouveau le fichier .CSSX (il suffit de renommer CSSX en zip) et assurez-vous que toutes les références et le contenu statique sont là. De cette façon, vous pouvez vérifier ce qui se trouve sur la VM. De plus, dans les fenêtres de 2 minutes lorsque vous vous connectez en RDP, essayez de rechercher le journal des événements de l'application pour trouver l'exception, car c'est la clé pour trouver la cause principale.

Si vous pouvez voir l'exception dans le journal des événements et chercher l'exception, vous pourrez sûrement trouver où elle a été générée. Vous pouvez également utiliser Intellitrace, ce qui pourrait nécessiter de déployer à nouveau l'application.

Il existe également des façons de copier WinDBG et de le relier au processus spécifique pour le déboguer. Je ne sais pas dans quelle mesure vous voudriez essayer, mais simplement copier WinDBG sur la VM et l'utiliser suffirait (je ne sais pas quel est votre niveau d'expérience avec WinDBG et combien de temps vous voudriez y consacrer).

2voto

SliverNinja Points 15924

Aussi été importuné par ce problème de recyclage de rôle à de nombreuses reprises. Voici la séquence des étapes pour déboguer les recyclages de rôles persistants:

Débogage des Recyclages de Rôles Azure

  1. Activer l'accès à distance à votre rôle - connexion RDP
  2. Vérifier eventvwr.msc (Journaux Windows -> Application, Journaux des applications et des services -> Windows Azure)
  3. Examiner les logs textuels Azure à la fois dans C:\logs et c:\resources
  4. Examiner les logs personnalisés dans le volume E: ou F: pour toute journalisation de démarrage personnalisée du rôle
  5. Exécuter AzureTools et attacher aux processus de démarrage (télécharger WinDBG, utiliser Utils->Attacher le débogueur, sélectionner le processus - WaWorkerHost/WaIISHost, etc), utiliser G pour continuer et regarder la sortie du débogueur pour les assemblages qui échouent à se charger.

    Installation des Outils de Débogage Azure via Powershell

    PS> md c:\tools; Import-Module bitstransfer; Start-BitsTransfer http://dsazure.blob.core.windows.net/azuretools/AzureTools.exe c:\tools\AzureTools.exe; c:\tools\AzureTools.exe

Si tous les éléments ci-dessus échouent - essayez d'utiliser d'autres outils dans le trésor d'AzureTools - tels que le journal de fusion, etc, cette approche ci-dessus fonctionnera!

Sortie d'exemple de WinDBG - Échec de Localisation de l'Assemblage (WaIISHost)

description de l'image ici

1voto

BrentDaCodeMonkey Points 3858

La cause la plus probable est que vous avez une assembly manquante. Une tactique pour attraper cela est d'envelopper tout traitement de démarrage dans un bloc try/catch qui enregistre manuellement l'erreur dans le stockage Azure.

Si vous avez ajouté des références, vérifiez qu'elles sont définies sur copylocal=true et que tous les éléments externes inclus dans votre package de service ont également été inclus.

1voto

RobVious Points 4798

De la part d'Avkash ci-dessus :

Oui. Cela signifie qu'un problème dans votre code de rôle de travailleur provoque le crash de votre processus hôte de rôle de travailleur. Si vous regardez la pile des erreurs, vous devez voir la fonction ou le lien de votre code qui génère cette erreur. Si vous avez besoin d'aide, ouvrez un incident de support Azure gratuit à l'équipe de support de Windows Azure et ils vous aideront.

1voto

Vijay Arumugam Points 126

Juste une suggestion : Vérifiez également si les éléments installables (le cas échéant) et les autres références que vous utilisez sont en 64 bits. Les machines virtuelles Azure ont un système d'exploitation en 64 bits. J'ai déjà été bloqué par ce type de problème en raison de problèmes de compatibilité entre les versions 32 et 64 bits.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X