Ich arbeite gerade an einem Azure-Projekt, das zu 100% lokal mit Emulatorressourcen arbeitet. Ich versuche jetzt, eine Worker-Rolle bereitzustellen, aber ich stoße auf ein Problem, bei dem ich mir nicht sicher bin, wie ich Fehler beheben soll.
Beim Bereitstellen der Worker-Rolle in meinem Azure-Portal durchlaufen die beiden Instanzen kontinuierlich das "Recycling".
Ich kann versuchen, RDP in die Rolle zu bringen, aber ich habe nur ungefähr eine Minute, um mich umzusehen, bevor die Verbindung schließt, nehme ich aufgrund des Recyclings an.
Nach einigem Suchen scheint es nicht, dass dies ein sehr häufiges Problem ist. Gibt es etwas Triviales, das ich übersehe, das dieses Problem verursachen könnte? Wie würden Sie das Problem beheben? Danke für deine Zeit:)
Von Avkash oben:
Ja. Das bedeutet, dass ein Problem in Ihrem Worker Role-Code zum Absturz Ihres Worker-Role-Host-Prozesses führt. Wenn Sie sich Ihren Fehler-Stack ansehen, müssen Sie die Funktion oder den Link aus Ihrem Code sehen, der diesen Fehler erzeugt. Wenn Sie Hilfe benötigen, öffnen Sie einen kostenlosen Azure Support-Vorfall für das Windows Azure-Supportteam, und diese werden Ihnen helfen.
Bei fehlender Referenz können Sie dieses Problem beheben durch:
Entpacken Sie Ihre CSPKG-Datei und entpacken Sie dann erneut die .CSSX-Datei (benennen Sie einfach CSSX in zip um) und passen Sie darauf, dass alle Referenzen und statischen Inhalte vorhanden sind. Auf diese Weise können Sie die VM-Inhalte abgleichen. Versuchen Sie auch in 2-Minuten-Fenstern, wenn Sie RDP suchen, nach Anwendungsereignisprotokoll für Ausnahme zu suchen und es zu erhalten, da das der Schlüssel zum Suchen der Ursache sein würde.
Wenn Sie die Ausnahme im Ereignisprotokoll sehen und nach der Ausnahme suchen, können Sie sicher herausfinden, wo sie generiert wurde. Sie können auch Intellitrace verwenden, für das Sie die App möglicherweise erneut bereitstellen müssen.
Es gibt auch Möglichkeiten, WinDBG zu kopieren und an den spezifischen Prozess zu binden, den Sie debuggen können. Ich bin mir nicht sicher, wie viel Sie versuchen möchten, aber kopieren Sie einfach die WinDBG auf VM und verwenden Sie es wäre genug (nicht sicher, wie viel Erfahrung Sie mit WinDBG haben und wie viel Zeit Sie verbringen möchten.)
Auch durch diese Rolle wurde Recyclingproblem mehrfach belästigt. Hier ist die Reihenfolge der Schritte zum Debuggen der persistenten Rolle recycelt :
C:\logs
als auch in c:\resources
.
E:
oder F:
für jede benutzerdefinierte Rollenstartprotokollierung Führen Sie AzureTools und an Startprozesse anhängen (Download WinDBG , verwenden Sie Utils- & gt; Attach Debugger, wählen Sie Prozess - WaWorkerHost / WaIISHost usw.), verwenden Sie G , um fortzufahren und die Debugger-Ausgabe für Baugruppen zu beobachten, die nicht geladen werden können.
PS & gt; md c: \ Werkzeuge; Import-Modul-Bitübertragung; Start-BitsTransfer Ссылка c: \ tools \ AzureTools.exe; c: \ tools \ AzureTools.exe
Wenn alle oben genannten Elemente fehlschlagen - versuchen Sie, andere Tools in der Schatzkammer AzureTools zu verwenden - z. B. Fusionsprotokollierung usw., funktioniert dieser obige Ansatz!
Die wahrscheinlichste Ursache ist, dass Sie eine fehlende Baugruppe haben. Eine Taktik, um dies zu erfassen, besteht darin, jede Startverarbeitung in einen Master-try / catch zu packen, der den Fehler im Azure-Speicher protokolliert.
Wenn Sie Referenzen hinzugefügt haben, stellen Sie sicher, dass sie auf copylocal = true festgelegt sind und dass alle externen Assets, die in Ihrem Servicepaket enthalten waren, ebenfalls enthalten sind.
Nur ein Vorschlag: Überprüfen Sie auch die installierbare (wenn vorhanden) und andere Referenzen, die Sie verwenden, sind 64bit.Azure VMs haben 64-Bit-Betriebssystem. Sobald ich mit dieser Art von Problem aufgrund von 32/64 Bit-Problemen festgefahren war.
Verlassen Ihre Worker-Rollen ihre Arbeitsschleife? Ein lokales Recycling ist sehr schnell und Sie werden es vielleicht nicht bemerken, aber die Spin-up-Zeit in der Cloud kann lang sein.
Wenn das Problem durch eine Start-Batch-Datei verursacht wird, habe ich die Schleife gestoppt, indem ich die Batch-Datei auf der Instanz so bearbeitet habe, dass sie "exit / b 0" am Anfang enthält. Dadurch wird Azure mitgeteilt, dass der Startvorgang erfolgreich war, und Sie haben dann die Zeit, die Sie benötigen, um Probleme zu diagnostizieren, ohne dass die VM getötet wird.
Tags und Links azure azure-storage-blobs azure-worker-roles azure-storage azure-table-storage