Häufig gestellte Fragen zur Anwendungsleistung für Web-Apps in Azure

Hinweis

Einige der folgenden Richtlinien funktionieren möglicherweise nur unter Windows oder Linux App Services. Linux App Services wird beispielsweise standardmäßig im 64-Bit-Modus ausgeführt.

Dieser Artikel enthält Antworten auf häufig gestellte Fragen (FAQs) zu Problemen mit der Anwendungsleistung für das Web-Apps Feature von Azure App Service.

Wenn Ihr Problem mit Azure in diesem Artikel nicht behandelt wird, besuchen Sie die Azure-Foren auf MSDN und Stack Overflow. Sie können Ihr Problem in diesen Foren veröffentlichen oder auf Twitter an @AzureSupport posten. Sie können auch eine Azure-Supportanfrage stellen. Um eine Supportanfrage zu stellen, wählen Sie auf der Azure-Support-Seite Support erhalten.

Warum zeigt mein App Service Plan die CPU-/Arbeitsspeicherauslastung an, auch wenn alle Web-Apps beendet wurden?

Azure App Service erfordert kontinuierliche Systemprozesse, die verschiedene Plattformvorgänge und -features verarbeiten, z. B. Sicherheitsupdates, Verfügbarkeit der SCM-Konsole, Anwendungsüberwachung, Authentifizierung und viele andere wichtige Features Ihrer Web-App.

Systemprozesse werden auf App Service Plans ausgeführt, auch wenn keine Web-Apps ausgeführt werden oder wenn der App Service Plan keine Web-Apps enthält.

Die Plattformprozesse verbrauchen eine Mindestmenge an Ressourcen (z. B. CPU, Arbeitsspeicher und Speicherplatz), und dies sollte bei der Konfiguration der Kapazitätsplanung, Überwachung und automatischen Skalierung eines App Service Plans berücksichtigt werden.

Warum ist meine App langsam?

Mehrere Faktoren können zu einer langsamen App-Leistung beitragen. Ausführliche Schritte zur Problembehandlung finden Sie unter Problembehandlung bei langsamer Web-App-Leistung.

Gewusst wie Problembehandlung für ein Szenario mit hoher CPU-Auslastung?

In einigen Szenarien mit hoher CPU-Auslastung benötigt Ihre App möglicherweise wirklich mehr Computeressourcen. Erwägen Sie in diesem Fall die Skalierung auf eine höhere Dienstebene, damit die Anwendung alle benötigten Ressourcen erhält. In anderen Situationen kann eine hohe CPU-Auslastung durch eine fehlerhafte Schleife oder durch eine Codierungspraxis verursacht werden. Es ist ein zweiteiliger Prozess, einblick zu erhalten, was einen erhöhten CPU-Verbrauch auslöst. Erstellen Sie zunächst ein Prozessabbild, und analysieren Sie dann das Prozessabbild. Weitere Informationen finden Sie unter Erfassen und Analysieren einer Speicherabbilddatei für hohe CPU-Auslastung für Web-Apps.

Gewusst wie Problembehandlung für ein Szenario mit hohem Arbeitsspeicherverbrauch?

In einigen Szenarien mit hohem Arbeitsspeicherverbrauch benötigt Ihre App möglicherweise wirklich mehr Computeressourcen. Erwägen Sie in diesem Fall die Skalierung auf eine höhere Dienstebene, damit die Anwendung alle benötigten Ressourcen erhält. In anderen Situationen kann ein Fehler im Code zu einem Speicherverlust führen. Eine Codierungspraxis kann auch den Arbeitsspeicherverbrauch erhöhen. Es ist ein zweiteiliger Prozess, Einblick in die Auslöser einer hohen Arbeitsspeicherauslastung zu erhalten. Erstellen Sie zunächst ein Prozessabbild, und analysieren Sie dann das Prozessabbild. Absturzdiagnoser aus dem Azure-Websiteerweiterungskatalog können diese beiden Schritte effizient ausführen. Weitere Informationen finden Sie unter Erfassen und Analysieren einer Speicherabbilddatei für zeitweilig hohen Arbeitsspeicher für Web-Apps.

Gewusst wie App Service Web-Apps mithilfe von PowerShell automatisieren?

Sie können PowerShell-Cmdlets verwenden, um App Service Web-Apps zu verwalten und zu verwalten. In unserem Blogbeitrag Automatisieren von Web-Apps, die in Azure App Service mithilfe von PowerShell gehostet werden, wird beschrieben, wie Sie azure Resource Manager-basierte PowerShell-Cmdlets verwenden, um allgemeine Aufgaben zu automatisieren. Der Blogbeitrag enthält auch Beispielcode für verschiedene Web-Apps-Verwaltungsaufgaben. Beschreibungen und Syntax für alle App Service Web-Apps-Cmdlets finden Sie unter Az.Websites.

Gewusst wie ereignisprotokolle meiner Web-App anzeigen?

So zeigen Sie die Ereignisprotokolle Ihrer Web-App an:

  1. Melden Sie sich bei Ihrer Kudu-Website an (https://*yourwebsitename*.scm.azurewebsites.net).
  2. Wählen Sie im Menü Debug Console>CMD aus.
  3. Wählen Sie den Ordner LogFiles aus .
  4. Um Ereignisprotokolle anzuzeigen, wählen Sie das Stiftsymbol neben eventlog.xmlaus.
  5. Führen Sie zum Herunterladen der Protokolle das PowerShell-Cmdlet aus Save-AzureWebSiteLog -Name webappname.

Gewusst wie ein Speicherabbild im Benutzermodus meiner Web-App erfassen?

So erfassen Sie ein Speicherabbild im Benutzermodus Ihrer Web-App:

  1. Melden Sie sich bei Ihrer Kudu-Website an (https://*yourwebsitename*.scm.azurewebsites.net).
  2. Wählen Sie das Menü Prozess Explorer aus.
  3. Klicken Sie mit der rechten Maustaste auf den w3wp.exe Prozess oder Ihren WebJob-Prozess.
  4. Wählen Sie Download Memory Dump Full Dump (Vollständiges Speicherabbild> herunterladen)aus.

Gewusst wie Informationen auf Prozessebene für meine Web-App anzeigen?

Sie haben zwei Optionen zum Anzeigen von Informationen auf Prozessebene für Ihre Web-App:

  • Im Azure-Portal:
    1. Öffnen Sie die prozess Explorer für die Web-App.
    2. Um die Details anzuzeigen, wählen Sie den w3wp.exe Prozess aus.
  • In der Kudu-Konsole:
    1. Melden Sie sich bei Ihrer Kudu-Website an (https://*yourwebsitename*.scm.azurewebsites.net).
    2. Wählen Sie das Menü Prozess Explorer aus.
    3. Wählen Sie für den w3wp.exe Prozess Eigenschaften aus.

Wenn ich zu meiner App navige, wird "Fehler 403 – Diese Web-App wurde beendet" angezeigt. Gewusst wie dies beheben?

Dieser Fehler kann durch drei Bedingungen verursacht werden:

  • Die Web-App hat ein Abrechnungslimit erreicht, und Ihre Website wurde deaktiviert.
  • Die Web-App wurde im Portal beendet.
  • Die Web-App hat ein Ressourcenkontingentlimit erreicht, das für einen Serviceplan im Tarif "Free" oder "Shared" gelten kann.

Um zu sehen, was den Fehler verursacht und um das Problem zu beheben, führen Sie die Schritte unter Web-Apps aus: "Fehler 403 – Diese Web-App wurde beendet".

Wo kann ich mehr über Kontingente und Grenzwerte für verschiedene App Service Pläne erfahren?

Informationen zu Kontingenten und Grenzwerten finden Sie unter App Service Grenzwerte.

Gewusst wie die Antwortzeit für die erste Anforderung nach der Leerlaufzeit verringern?

Web-Apps werden standardmäßig entladen, wenn sie sich für einen bestimmten Zeitraum im Leerlauf befinden. Auf diese Weise kann das System Ressourcen schonen. Der Nachteil ist, dass die Antwort auf die erste Anforderung nach dem Entladen der Web-App länger ist, damit die Web-App geladen und mit der Bereitstellung von Antworten beginnen kann. In den Dienstplänen "Basic" und "Standard" können Sie die Einstellung Always On aktivieren, damit die App immer geladen wird. Dadurch werden längere Ladezeiten vermieden, nachdem sich die App im Leerlauf befindet. So ändern Sie die einstellung Always On

  1. Wechseln Sie im Azure-Portal zu Ihrer Web-App.
  2. Konfiguration auswählen
  3. Wählen Sie Allgemeine Einstellungen aus.
  4. Wählen Sie für Always On die Option Ein aus.

Gewusst wie die Ablaufverfolgung für fehlgeschlagene Anforderungen aktivieren?

Führen Sie die folgenden Schritte aus, um die Ablaufverfolgung für fehlgeschlagene Anforderungen zu aktivieren:

  1. Wechseln Sie im Azure-Portal zu Ihrer Web-App.

  2. Wählen Sie Alle Einstellungen>Diagnoseprotokolle aus.

  3. Wählen Sie für Ablaufverfolgung fehlgeschlagener Anforderungen die Option Ein aus.

  4. Klicken Sie auf Speichern.

  5. Wählen Sie auf dem Blatt "Web-App " die Option Extras aus.

  6. Wählen Sie Visual Studio Online aus.

  7. Wenn die Einstellung nicht auf Ein festgelegt ist, wählen Sie Ein aus.

  8. Wählen Sie Los.

  9. Wählen Sie Web.configaus.

  10. Fügen Sie in system.webServer die folgende Konfiguration hinzu (um eine bestimmte URL zu erfassen):

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*api*" />
    <add path="*api*">
    <traceAreas>
    <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  11. Um Probleme mit langsamer Leistung zu beheben, fügen Sie diese Konfiguration hinzu (wenn die Erfassungsanforderung länger als 30 Sekunden dauert):

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*" />
    <add path="*">
    <traceAreas> <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions timeTaken="00:00:30" statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  12. Um die Ablaufverfolgungen für fehlgeschlagene Anforderungen herunterzuladen, wechseln Sie im Portal zu Ihrer Website.

  13. Wählen Sie Tools>Kudu>Go aus.

  14. Wählen Sie im Menü Debug Console>CMD aus.

  15. Wählen Sie den Ordner LogFiles und dann den Ordner mit einem Namen aus, der mit W3SVC beginnt.

  16. Um die XML-Datei anzuzeigen, wählen Sie das Stiftsymbol aus.

Mir wird die Meldung "Der Arbeitsprozess hat die Wiederverwendung aufgrund des Arbeitsspeicherlimits in Prozent angefordert" angezeigt. Gewusst wie dieses Problem beheben?

Die maximal verfügbare Arbeitsspeichermenge für einen 32-Bit-Prozess (auch unter einem 64-Bit-Betriebssystem) beträgt 2 GB. Standardmäßig ist der Arbeitsprozess in App Service auf 32-Bit festgelegt (aus Kompatibilität mit Legacy-Webanwendungen).

Erwägen Sie den Wechsel zu 64-Bit-Prozessen, damit Sie den zusätzlichen Arbeitsspeicher nutzen können, der in Ihrer Web-Workerrolle verfügbar ist. Durch diese Aktion wird ein Neustart der Web-App ausgelöst, sodass Sie einen zeitplan entsprechend planen.

Beachten Sie auch, dass eine 64-Bit-Umgebung einen Basic- oder Standard-Serviceplan erfordert. Free- und Shared-Pläne werden immer in einer 32-Bit-Umgebung ausgeführt.

Weitere Informationen finden Sie unter Konfigurieren von Web-Apps in App Service.

Warum tritt für meine Anforderung nach 230 Sekunden ein Timeout auf?

Azure Load Balancer hat eine Standardeinstellung für leerlauftimeouts von vier Minuten. Diese Einstellung ist in der Regel ein angemessenes Antwortzeitlimit für eine Webanforderung. daher gibt App Service ein Timeout an den Client zurück, wenn Ihre Anwendung innerhalb von ungefähr 240 Sekunden keine Antwort zurückgibt (230 Sekunden bei Windows-App, 240 Sekunden in der Linux-App). Wenn Ihre Web-App Hintergrundverarbeitung erfordert, empfehlen wir die Verwendung von Azure WebJobs. Die Azure-Web-App kann WebJobs aufrufen und benachrichtigt werden, wenn die Hintergrundverarbeitung abgeschlossen ist. Sie können aus mehreren Methoden für die Verwendung von WebJobs auswählen, einschließlich Warteschlangen und Triggern.

WebJobs ist für die Hintergrundverarbeitung konzipiert. Sie können in einem WebJob so viel Hintergrundverarbeitung ausführen, wie Sie möchten. Weitere Informationen zu WebJobs finden Sie unter Ausführen von Hintergrundaufgaben mit WebJobs.

ASP.NET Core Anwendungen, die in App Service gehostet werden, reagieren manchmal nicht mehr. Gewusst wie dieses Problem beheben?

Ein bekanntes Problem mit einer früheren Kestrel-Version kann dazu führen, dass eine ASP.NET Core 1.0-App, die in App Service gehostet wird, zeitweilig nicht mehr reagiert. Möglicherweise wird auch die folgende Meldung angezeigt: "Bei der angegebenen CGI-Anwendung ist ein Fehler aufgetreten, und der Server hat den Prozess beendet."

Dieses Problem wurde in Kestrel Version 1.0.2 behoben. Diese Version ist im Update ASP.NET Core 1.0.3 enthalten. Um dieses Problem zu beheben, stellen Sie sicher, dass Sie Ihre App-Abhängigkeiten so aktualisieren, dass Kestrel 1.0.2 verwendet wird. Alternativ können Sie eine von zwei Problemumgehungen verwenden, die im Blogbeitrag ASP.NET Core 1.0 langsamen Leistungsproblemen in App Service Web-Apps beschrieben werden.

Ich kann meine Protokolldateien in der Dateistruktur meiner Web-App nicht finden. Wie finde ich sie?

Wenn Sie das Feature "Lokaler Cache" von App Service verwenden, ist die Ordnerstruktur der Ordner "LogFiles" und "Data" für Ihre App Service instance betroffen. Wenn lokaler Cache verwendet wird, werden Unterordner in den Speicherordnern LogFiles und Data erstellt. Die Unterordner verwenden das Benennungsmuster "eindeutiger Bezeichner" + Zeitstempel. Jeder Unterordner entspricht einer VM instance, auf der die Web-App ausgeführt wird oder ausgeführt wurde.

Um festzustellen, ob Sie den lokalen Cache verwenden, überprüfen Sie die Registerkarte App Service Anwendungseinstellungen. Wenn lokaler Cache verwendet wird, wird die App-Einstellung WEBSITE_LOCAL_CACHE_OPTION auf Alwaysfestgelegt.

Wenn Sie den lokalen Cache nicht verwenden und dieses Problem auftritt, senden Sie eine Supportanfrage.

Ich sehe die Meldung "Es wurde versucht, auf einen Socket zuzugreifen, der durch seine Zugriffsberechtigungen verboten ist." Gewusst wie diesen Fehler beheben?

Dieser Fehler tritt in der Regel auf, wenn die ausgehenden TCP-Verbindungen auf dem virtuellen Computer instance erschöpft sind. In App Service werden Grenzwerte für die maximale Anzahl ausgehender Verbindungen erzwungen, die für jeden virtuellen Computer instance hergestellt werden können. Weitere Informationen finden Sie unter VM-übergreifende numerische Grenzwerte.

Dieser Fehler kann auch auftreten, wenn Sie versuchen, von Ihrer Anwendung aus auf eine lokale Adresse zuzugreifen. Weitere Informationen finden Sie unter Anforderungen für lokale Adressen.

Weitere Informationen zu ausgehenden Verbindungen in Ihrer Web-App finden Sie im Blogbeitrag zu ausgehenden Verbindungen mit Azure-Websites.

Gewusst wie visual Studio zum Remotedebuggen meiner App Service-Web-App verwenden?

Eine ausführliche exemplarische Vorgehensweise zum Debuggen Ihrer Web-App mit Visual Studio finden Sie unter Remotedebuggen Ihrer App Service Web-App.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.