Probleme bei Azure-Web-App-Bereitstellungsaufgaben beheben

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Dieser Artikel hilft Ihnen, häufige Fehler zu beheben, die auftreten, wenn Sie die Aufgaben Azure Web App (AzureWebApp@1) oder Azure App Service Deploy (AzureRmWebAppDeployment@4) in Azure Pipelines verwenden.

Dies ist ein Problembehandlungsartikel. Weitere Informationen zu App Service-Bereitstellungen finden Sie unter Bereitstellen in Azure App Service mithilfe von Azure Pipelines, das Themen wie AzureWebApp@1 und erweiterte Szenarien mit AzureRmWebAppDeployment@4 abdeckt. Für containerbasierte Bereitstellungen lesen Sie den Artikel "Einen benutzerdefinierten Container mithilfe von Azure Pipelines in App Service bereitstellen", der AzureRmWebAppDeployment@4 Beispiele enthält.

Tipp

Bevor Sie Fehler beheben, sammeln Sie Debugprotokolle, indem Sie die ausführliche Protokollierung für die Pipeline-Ausführung aktivieren. Sie können auch Diagnoseprotokolle aus dem Kudu-Dienst und dem Feature "Diagnose und Lösung von Problemen " im Azure-Portal für Ihren App Service sammeln. Überprüfen Sie den Azure DevOps-Status und den Azure-Status , um Dienstausfälle auszuschließen.

"JavaScript-Heap aus dem Arbeitsspeicher"

Symptom

Die Bereitstellungsaufgabe schlägt mit dem folgenden Fehler fehl:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Ursache

Dieser Fehler tritt auf, wenn die Aufgabe versucht, ein großes Bereitstellungspaket zu entpacken und erneut zu packen, und der Vorgang überschreitet den verfügbaren Arbeitsspeicher auf dem Agenten. Von Microsoft gehostete Agents verfügen über begrenzte Ressourcen, was zu diesem Fehler bei großen Paketen führen kann.

Beschluss

Verwenden Sie die Azure Web App (AzureWebApp@1)- Aufgabe anstelle der AzureRmWebAppDeployment@4 Aufgabe für App Service-Bereitstellungen. Die AzureWebApp@1 Aufgabe verarbeitet große Pakete effizienter.

Verwenden Sie für kompliziertere Bereitstellungsszenarien, die EINE XML-Transformation erfordern, die Azure App Service Deploy (AzureRmWebAppDeployment@4) -Aufgabe mit einem kleineren Paket, oder teilen Sie Transformationen in einen separaten Pipelineschritt auf.

"ECONNRESET" während der Bereitstellung

Symptom

Die Bereitstellungsaufgabe schlägt mit dem folgenden Fehler fehl:

Encountered a retriable error: ECONNRESET. Message: read ECONNRESET

Ursache

Eine Netzwerkverbindung zwischen dem Pipeline-Agent und dem App-Dienst wurde während der Bereitstellung zurückgesetzt. Häufige Ursachen sind:

  • Von Microsoft gehostete Agents, die in einer App Service Environment (ASE) bereitgestellt werden: Das ASE könnte möglicherweise eingehende Verbindungen von Agent-IP-Adressen blockieren.
  • Selbst gehostete Agenten: Eine unzuverlässige oder instabile Netzwerkverbindung zwischen den Agenten und dem App-Service.

Beschluss

Für von Microsoft gehostete Agents mit ASE:

Stellen Sie sicher, dass Ihre ASE-Netzwerksicherheitsregeln eingehende Verbindungen aus den von Microsoft gehosteten Agent-IP-Bereichen für Ihre Geografie zulassen. Die Liste der IP-Adressbereiche finden Sie unter Zulässige IP-Adressen und Domänen-URLs.

Für eigengehostete Agenten:

  • Überprüfen Sie, ob die Netzwerkverbindung zwischen Ihrem Agent und dem App-Dienst stabil ist.
  • Wenn das Problem weiterhin besteht, erstellen Sie ein Supportticket bei dem Azure App Service oder dem Azure Networking Team, um das Problem weiter zu untersuchen.

"Fehler beim Bereitstellen des Webpakets in App Service"

Symptom

Die Bereitstellungsaufgabe schlägt mit einem oder beiden der folgenden Fehler fehl:

[error]Failed to deploy web package to App Service.
Package deployment using ZIP Deploy failed. Refer logs for more details.

Ursache

Die Aufgabe verwendet die Kudu-API zipDeploy für die Bereitstellung, und die API hat einen Fehler zurückgegeben. Dieser Fehler kann auftreten, wenn der App-Dienst das eingehende Paket nicht ordnungsgemäß verarbeiten kann.

Beschluss

Setzen Sie die WEBSITE_RUN_FROM_PACKAGE App-Einstellung auf 1 auf Ihrem App-Dienst.

  1. Wechseln Sie im Azure-Portal zu Ihrem App-Dienst.
  2. Wählen Sie"Konfigurationsanwendungseinstellungen>" aus.
  3. Hinzufügen oder Aktualisieren der Einstellung WEBSITE_RUN_FROM_PACKAGE mit einem Wert von 1.
  4. Speichern Sie die Konfiguration, und wiederholen Sie die Bereitstellung.

Weitere Informationen finden Sie unter Ausführen Ihrer App aus einem Paket.

"EMFILE: zu viele geöffnete Dateien"

Symptom

Die Bereitstellungsaufgabe schlägt mit einem der folgenden Fehler fehl:

EMFILE: too many open files
Error: Package deployment using ZIP Deploy failed

Ursache

Die Bereitstellungsaufgabe öffnet zu viele Dateihandles, wenn ein großes Paket entzippt wird und die Dateibeschreibungsgrenze des Betriebssystems überschritten wird.

Beschluss

Verwenden Sie eine der folgenden Problemumgehungen:

Option 1: Verwenden der Azure Web App-Aufgabe

Wechseln Sie von AzureRmWebAppDeployment@4 zur Azure Web App (AzureWebApp@1)-Aufgabe, die große Pakete unterschiedlich behandelt.

Option 2: Extrahieren von Dateien vor der Bereitstellung

Verwenden Sie die Aufgabe "Dateien extrahieren ", um das Paket in einem vorherigen Schritt zu entzippen und dann den extrahierten Ordner bereitzustellen. Dieser Ansatz verhindert, dass die Bereitstellungsaufgabe das Paket selbst entzippen muss.

steps:
- task: ExtractFiles@1
  displayName: 'Extract files'
  inputs:
    archiveFilePatterns: '$(InputPackageZipPath)'
    destinationFolder: '$(OutputUnzippedPath)'

- task: AzureRmWebAppDeployment@4
  displayName: 'Azure App Service Deploy'
  inputs:
    azureSubscription: 'Subscription'
    WebAppName: 'app-name'
    package: '$(OutputUnzippedPath)'

Fehler "Ressource ist nicht vorhanden"

Symptom

Die Bereitstellungsaufgabe schlägt mit dem folgenden Fehler fehl:

Error: Resource '<ResourceName>' doesn't exist. Resource should exist before deployment.

Dieser Fehler kann mit Azure Web App-Aufgaben, Azure App Service Deploy-Aufgaben, Azure Functions-Aufgaben und ARM-Vorlagenbereitstellungsaufgaben auftreten.

Ursache

Der Vorgang ruft Azure-APIs auf, die von zwischengespeicherten Ressourcendaten abhängen. Wenn der App-Dienst oder eine andere Azure-Ressource kürzlich erstellt wurde – entweder in derselben Pipeline, von einem anderen Tool oder direkt vor der Pipeline ausgeführt – spiegelt der Cache möglicherweise noch nicht die neue Ressource wider.

Beschluss

Fügen Sie einen Verzögerungsschritt in Ihrer Pipeline vor der Bereitstellungsaufgabe hinzu, damit der Azure-Cache aktualisiert werden kann:

steps:
- task: PowerShell@2
  displayName: 'Wait for resource propagation'
  inputs:
    targetType: inline
    script: Start-Sleep -Seconds 60

Wenn das Hinzufügen einer Verzögerung den Fehler nicht behebt, erstellen Sie ein Supportticket mit dem Azure-Serviceteam für den betroffenen Ressourcentyp.

"Es wurde kein Paket mit angegebenem Muster gefunden"

Symptom

Die Bereitstellungsaufgabe schlägt mit einem Fehler fehl, der angibt, dass kein Paket gefunden wurde, das dem angegebenen Muster entspricht.

Ursache

Das Artefakt, das das Bereitstellungspaket enthält, wurde entweder nicht im Build oder in einer vorherigen Stufe veröffentlicht oder nicht im aktuellen Job heruntergeladen.

Beschluss

  • Stellen Sie sicher, dass der Build oder eine vorherige Pipelinephase das Paket als Pipelineartefakt veröffentlicht.
  • Vergewissern Sie sich, dass der aktuelle Auftrag einen Downloadschritt für das Artefakt enthält.
  • Überprüfen Sie, ob das Dateipfadmuster in der Bereitstellungsaufgabe mit dem tatsächlichen Artefaktpfad übereinstimmt.

Die Option "Veröffentlichen mit ZIP-Deploy" wird für den MSBuild-Pakettyp nicht unterstützt.

Symptom

Die Bereitstellungsaufgabe scheitert mit einem Fehler, dass die Zip-Bereitstellung für MSBuild-Pakettypen nicht unterstützt wird.

Ursache

Webpakete, die von der MSBuild-Aufgabe (mit Standardargumenten) erstellt wurden, verwenden eine geschachtelte Ordnerstruktur, die Web Deploy für die richtige Bereitstellung erfordert. Die Zip-Bereitstellungsoption kann diese Paketstruktur nicht verarbeiten.

Beschluss

Verwenden Sie die AzureRmWebAppDeployment@4 Aufgabe mit Web Deploy anstelle der ZIP-Bereitstellung, oder strukturieren Sie den Build so, dass eine verzeichnisbasierte Ausgabe erstellt wird. Um eine Ordnerausgabe von MSBuild zu erzeugen, fügen Sie das /p:PackageAsSingleFile=false Argument zu Ihrer MSBuild-Aufgabe hinzu.

5xx-Fehler während der Bereitstellung

Symptom

Die Bereitstellungsaufgabe schlägt mit einem 500, 502, 503 oder einem anderen 5xx HTTP-Fehlercode fehl.

Ursache

Serverseitiger Fehler im App-Dienst oder der zugrunde liegenden Infrastruktur. Häufige Ursachen sind unzureichende App Service Plan-Kapazität, ein laufender Azure-Ausfall oder der App-Dienst, der in einem angehaltenen oder fehlerzustand ist.

Beschluss

  • Überprüfen Sie den Azure-Status auf laufende Ausfälle.
  • Überprüfen Sie im Azure-Portal, ob der App-Dienst ausgeführt wird und der App-Serviceplan über ausreichende Kapazität verfügt.
  • Skalieren Sie den App-Dienstplan, um CPU, RAM und Speicherplatz zu erhöhen, oder probieren Sie einen anderen Plan aus.
  • Weitere Informationen zum serverseitigen Fehler erhalten Sie in den Kudu-Protokollen.

Release hängt und schlägt dann fehl oder "503-Dienst nicht verfügbar"

Symptom

Eine Bereitstellung wird für einen längeren Zeitraum ausgeführt und schlägt schließlich fehl, tritt ein 503 Service Unavailable Fehler auf, oder der Bereitstellungsverlauf in Kudu-Protokollen kann nicht aktualisiert werden.

Ursache

Diese Probleme treten in der Regel auf, wenn der App-Serviceplan nicht genügend Kapazität hat, um die Bereitstellung zusammen mit der ausgeführten Anwendung zu verarbeiten.

Beschluss

  • Skalieren Sie die App Service-Instanz, um den verfügbaren CPU-, RAM- und Festplattenspeicher zu erhöhen.
  • Versuchen Sie, einen anderen App Service-Plan bereitzustellen, um Ressourcenkonflikte auszuschließen.
  • Überprüfen Sie die Kudu-Diagnoseprotokolle aus dem Azure-Portal auf bestimmte Fehler.
  • Verwenden Sie für Bereitstellungen ohne Ausfallzeiten Bereitstellungsplätze mit Slot-Swaps, anstatt direkt in den Produktionsslot zu implementieren.

Netzwerkkonnektivitätsfehler während der Bereitstellung

Symptom

Die Bereitstellungsaufgabe schlägt mit einem netzwerkbezogenen Fehler fehl, z. B.:

Could not connect to the remote computer ('<AppName>.scm.azurewebsites.net')

Ursache

Der Pipeline-Agent kann aufgrund von Firewallregeln, Proxykonfiguration oder Netzwerkeinschränkungen den Kudu-Endpunkt (SCM-Standort) des App-Diensts nicht erreichen.

Beschluss

Überprüfen sie die Netzwerkkonfiguration für Ihren Agenttyp:

"Zugriffstoken für Azure konnte nicht abgerufen werden"

Symptom

Die Bereitstellungsaufgabe schlägt mit dem folgenden Fehler fehl:

Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.

Ursache

Der Dienstprinzipal, der die Azure-Dienstverbindung sichert, ist abgelaufen, deaktiviert oder verfügt nicht über die erforderlichen Berechtigungen.

Beschluss

Überprüfen Sie den Dienstprinzipal in der Microsoft Entra-ID, und verlängern Sie den geheimen Schlüssel oder das Zertifikat, falls er abgelaufen ist. Ausführliche Schritte zur Problembehandlung finden Sie unter "Problembehandlung für Azure Resource Manager-Dienstverbindungen".

SSL-Fehler in der Bereitstellungsaufgabe

Symptom

Die Bereitstellungsaufgabe schlägt mit einem SSL-bezogenen Fehler fehl.

Ursache

Der App-Dienst hat ein SSL-Zertifikatkonfigurationsproblem, z. B. die Verwendung eines nicht vertrauenswürdigen oder selbstsignierten Zertifikats.

Beschluss

Stellen Sie sicher, dass das von App Service verwendete Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle signiert ist. Weitere Informationen finden Sie unter Hinzufügen und Verwalten von TLS/SSL-Zertifikaten in Azure App Service.

Web Deploy error codes (Web Deploy-Fehlercodes)

Symptom

Bei Verwendung von Web Deploy als Bereitstellungsmethode zeigt das Aufgabenprotokoll einen Web Deploy-Fehlercode wie ERROR_CONNECTION_NOT_FOUND, ERROR_DESTINATION_NOT_REACHABLEoder andere an.

Ursache

Bei der Webbereitstellung ist ein Problem aufgetreten, das die Kommunikation mit oder Bereitstellung an den App Service betrifft.

Beschluss

Eine vollständige Liste der Fehlercodes und deren Lösungen finden Sie unter Web Deploy error codes .

"ERROR_FILE_IN_USE" beim Bereitstellen von .NET-Apps

Symptom

Die Bereitstellungsaufgabe schlägt bei der ERROR_FILE_IN_USE Bereitstellung einer .NET-Anwendung für App Service unter Windows fehl.

Ursache

Anwendungsdateien werden während der Bereitstellung durch den ausgeführten Anwendungsprozess gesperrt.

Beschluss

Aktivieren Sie in der AzureRmWebAppDeployment@4 Aufgabe die folgenden Optionen:

  • Gesperrte Dateien umbenennen (enableMSDeployAppOffline: true)
  • App offline schalten (enableMSDeployRetry: true)

Verwenden Sie für Bereitstellungen ohne Ausfallzeiten Bereitstellungsplätze mit Steckplatzwechseln.

Die App wurde erfolgreich bereitgestellt, funktioniert aber nicht (Windows)

Symptom

Die Bereitstellung wird ohne Fehler abgeschlossen, aber die Anwendung reagiert nicht oder gibt Fehler zurück, wenn Sie zu der Anwendung navigieren.

Ursache

Unter Windows App Service ist eine web.config Datei für viele Anwendungstypen (z. B. Node.js oder Python) erforderlich. Wenn die Datei fehlt, kann IIS Anforderungen nicht an Ihre Anwendung weiterleiten.

Beschluss

Fügen Sie dem Stamm ihrer Anwendung eine web.config Datei hinzu. Weitere Informationen finden Sie unter Konfigurieren eines benutzerdefinierten Containers für Azure App Service und den frameworkspezifischen Leitfaden:

Fehler bei der Funktions-App-Bereitstellung mit azureRmWebAppDeployment-Aufgabe

Symptom

Das Bereitstellen einer Azure-Funktions-App mit der AzureRmWebAppDeployment@4 Aufgabe schlägt fehl.

Ursache

Die AzureRmWebAppDeployment@4 Aufgabe wurde für Bereitstellungen von App Services entwickelt und könnte möglicherweise Funktions-App-spezifische Anforderungen nicht korrekt behandeln.

Beschluss

Verwenden Sie stattdessen die Aufgabe Azure Functions (AzureFunctionApp@1), die speziell für Funktions-App-Bereitstellungen entwickelt wurde.