Freigeben über


Allgemeine Probleme, durch die Azure Cloud Service-Rollen (klassisch) zyklisch ausgeführt werden

Wichtig

Cloud Services (klassisch) ist jetzt ab dem 1. September 2024 für alle Kunden veraltet. Alle vorhandenen ausgeführten Bereitstellungen werden beendet und von Microsoft heruntergefahren, und die Daten gehen ab Oktober 2024 dauerhaft verloren. In neuen Bereitstellungen sollte das neue auf Azure Resource Manager basierende Bereitstellungsmodell für Azure Cloud Services (erweiterter Support) verwendet werden.

In diesem Artikel sind einige der allgemeinen Ursachen für Bereitstellungsprobleme sowie Tipps zur Problembehandlung aufgeführt, mit denen Sie diese Probleme beheben können. Wenn die Rolleninstanz nicht gestartet wird oder zwischen den Zuständen „Initialisieren“, „Ausgelastet“ und „Beenden“ wechselt, weist dies auf ein Problem mit einer Anwendung hin.

Besuchen Sie die Azure-Foren von Microsoft Q&A und Stack Overflow, falls Sie Ihr Azure-Problem mit diesem Artikel nicht beheben konnten. Sie können Ihr Problem in diesen Foren oder an @AzureSupport auf Twitter posten. Sie können auch eine Azure-Supportanfrage senden. Wenn Sie eine Supportanfrage senden möchten, wählen Sie auf der Azure-Support-Seite die Option Support erhalten aus.

Fehlende Laufzeitabhängigkeiten

Wenn eine Rolle in Ihrer Anwendung auf einer Assembly basiert, die nicht Teil von .NET Framework oder der von Azure verwalteten Bibliothek ist, müssen Sie diese Assembly explizit in das Anwendungspaket einschließen. Bedenken Sie, dass andere Microsoft-Frameworks in Azure nicht standardmäßig verfügbar sind. Wenn Ihre Rolle auf solch einem Framework basiert, müssen Sie dem Anwendungspaket diese Assemblys hinzufügen.

Überprüfen Sie vor dem Erstellen und Paketieren Ihrer Anwendung, dass die folgenden Aussagen wahr sind:

  • Vergewissern Sie sich bei der Verwendung von Visual Studio, dass für jede referenzierte Assembly in Ihrem Projekt, die nicht Teil des Azure-SDK oder .NET Framework ist, die Eigenschaft Lokal Kopieren auf Wahr festgelegt ist.
  • Stellen Sie sicher, dass die Datei „web.config“ nicht auf nicht verwendete Assemblys im Kompilierungselement verweist.
  • Der Buildvorgang jeder CSHTML-Datei ist auf Inhalt festgelegt. Diese Einstellung stellt sicher, dass die Dateien im Paket korrekt angezeigt werden und ermöglicht es anderen referenzierten Dateien, im Paket zu erscheinen.

Die Assembly ist auf eine falsche Plattform ausgerichtet.

Azure ist eine 64-Bit-Umgebung. Daher sind .NET-Assemblys, die für ein 32-Bit-Ziel kompiliert wurden, nicht mit Azure kompatibel.

Eine Rolle löst beim Initialisieren oder Beenden Ausnahmefehler aus.

Alle von den Methoden der RoleEntryPoint-Klasse ausgelösten Ausnahmen, zu denen die Methoden OnStart, OnStop und Run gehören, sind Ausnahmefehler. Wenn ein Ausnahmefehler in einer der folgenden Methoden auftritt, wird die Rolle wiederverwendet. Wenn die Rolle zyklisch ausgeführt wird, wird bei jedem versuchten Start möglicherweise ein Ausnahmefehler ausgelöst.

Die Rolle wird von der Run-Methode reaktiviert.

Die Methode Ausführen ist für die Ausführung auf unbestimmte Zeit ausgelegt. Wenn Ihr Code die Ausführen -Methode außer Kraft setzt, sollte sie sich für unbegrenzte Zeit im Ruhezustand befinden. Wird die Ausführen -Methode jedoch reaktiviert, wird die Rolle zyklisch ausgeführt.

Falsche DiagnosticsConnectionString-Einstellung

Wenn die Anwendung die Azure-Diagnose verwendet, muss Ihre Dienstkonfigurationsdatei die Konfigurationseinstellung DiagnosticsConnectionString angeben. Diese Einstellung muss eine HTTPS-Verbindung zum Speicherkonto in Azure angeben.

Um sicherzustellen, dass Ihre DiagnosticsConnectionString-Einstellung korrekt ist, bevor Sie Ihr Anwendungspaket in Azure bereitstellen, überprüfen Sie, ob die folgenden Aussagen zutreffen:

  • Die Einstellung DiagnosticsConnectionString verweist auf ein gültiges Speicherkonto in Azure.
    Standardmäßig verweist diese Einstellung auf das emulierte Speicherkonto. Daher müssen Sie diese Einstellung explizit ändern, bevor Sie das Anwendungspaket bereitstellen. Wenn Sie diese Einstellung nicht ändern, wird eine Ausnahme ausgelöst, wenn die Rolleninstanz versucht, den Diagnosemonitor zu starten. Dieses Ereignis kann dazu führen, dass die Rolleninstanz unbegrenzt wiederverwendet wird.
  • Die Verbindungszeichenfolge wird in folgendem Format angegeben. (Das Protokoll muss als HTTPS angegeben werden.) Ersetzen Sie MyAccountName durch den Namen Ihres Speicherkontos und MyAccountKey durch den Zugriffsschlüssel:
DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey

Wenn Sie Ihre Anwendung mit den Azure-Tools für Microsoft Visual Studio entwickeln, können Sie die Eigenschaftenseiten verwenden, um diesen Wert festlegen.

Das exportierte Zertifikat enthält keinen privaten Schlüssel

Um eine Webrolle unter Transport Layer Security (TLS) auszuführen, müssen Sie sicherstellen, dass Ihr exportiertes Verwaltungszertifikat den privaten Schlüssel enthält. Wenn Sie zum Exportieren des Zertifikats den Windows-Zertifikat-Manager verwenden, aktivieren Sie für die Option Privaten Schlüssel exportieren unbedingt Ja. Das Zertifikat muss im PFX-Format exportiert werden, dies ist das einzige derzeit unterstützte Format.

Nächste Schritte

Sehen Sie sich weitere Artikel zur Problembehandlung für Clouddienste an.

Informieren Sie sich in der Blogreihe von Kevin Williamsonüber weitere Szenarien mit zyklischer Ausführung von Rollen.