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

Hinweis

Einige der folgenden Richtlinien funktionieren möglicherweise nur für Windows oder Linux-App-Dienste. Beispielsweise werden Linux-App-Dienste standardmäßig im 64-Bit-Modus ausgeführt.

Dieser Artikel enthält Antworten auf häufig gestellte Fragen (FAQs) zu Anwendungsleistungsproblemen 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 an @AzureSupport auf Twitter senden. Sie können auch eine Azure-Supportanfrage stellen. Um eine Supportanfrage zu stellen, wählen Sie auf der Azure-Support-Seite Support erhalten.

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 Leistung von Web-Apps.

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 Rechenressourcen. In diesem Fall sollten Sie die Skalierung auf eine höhere Dienstebene in Betracht ziehen, damit die Anwendung alle benötigten Ressourcen abruft. In anderen Fällen kann eine hohe CPU-Auslastung durch eine fehlerhafte Schleife oder durch eine Codierungspraxis verursacht werden. Einblicke in das, was eine erhöhte CPU-Auslastung auslöst, ist ein zweiteiligen Prozess. Erstellen Sie zunächst ein Prozessabbild, und analysieren Sie dann das Prozessabbild. Weitere Informationen finden Sie unter Erfassen und Analysieren einer Speicherabbilddatei für eine hohe CPU-Auslastung für Web-Apps.

Gewusst wie Problembehandlung bei einem Szenario mit hohem Arbeitsspeicherverbrauch?

In einigen Szenarien mit hohem Speicherverbrauch benötigt Ihre App möglicherweise wirklich mehr Computerressourcen. In diesem Fall sollten Sie die Skalierung auf eine höhere Dienstebene in Betracht ziehen, damit die Anwendung alle benötigten Ressourcen abruft. In anderen Fällen kann ein Fehler im Code zu einem Speicherverlust führen. Eine Codierungspraxis kann auch den Speicherverbrauch erhöhen. Einblicke in das, was einen hohen Speicherverbrauch auslöst, ist ein zweiteiligen Prozess. Erstellen Sie zunächst ein Prozessabbild, und analysieren Sie dann das Prozessabbild. Die Absturzdiagnose aus dem Azure Site Extension Gallery kann beide Schritte effizient ausführen. Weitere Informationen finden Sie unter Erfassen und Analysieren einer Speicherabbilddatei für zeitweilig hohen Speicher 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 Automate web apps hosted in Azure App Service by using PowerShell, we describe how to use Azure Resource Manager-based PowerShell cmdlets to automate common tasks. Der Blogbeitrag enthält auch Beispielcode für verschiedene Verwaltungsaufgaben für Web-Apps. Beschreibungen und Syntax für alle App Service Web-Apps-Cmdlets finden Sie unter Az.Websites.

Gewusst wie die 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ü "ConsoleCMD > debuggen" aus.
  3. Wählen Sie den Ordner "LogFiles" aus .
  4. Um Ereignisprotokolle anzuzeigen, wählen Sie das Stiftsymbol neben eventlog.xml aus.
  5. Um die Protokolle herunterzuladen, führen Sie das PowerShell-Cmdlet Save-AzureWebSiteLog -Name webappnameaus.

Gewusst wie einen 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 - oder WebJob-Prozess.
  4. Wählen Sie "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 den 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 navigiere, wird "Fehler 403 – Diese Web-App wurde beendet" angezeigt. Gewusst wie dieses Problem 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 kostenlosen oder freigegebenen Skalierungsdienstplan gelten kann.

Um zu sehen, was den Fehler verursacht, und um das Problem zu beheben, führen Sie die Schritte in Web-Apps aus: "Fehler 403 – Diese Web-App wird 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 leerer Zeit verringern?

Standardmäßig werden Web-Apps entladen, wenn sie sich für einen bestimmten Zeitraum im Leerlauf befinden. Auf diese Weise kann das System Ressourcen schonen. Der Nachteil besteht darin, dass die Antwort auf die erste Anforderung nach dem Entladen der Web-App länger ist, damit die Web-App Antworten laden und verarbeiten kann. In Standard- und Standarddienstplänen können Sie die einstellung Always On aktivieren, um die App immer geladen zu halten. Dadurch werden längere Ladezeiten vermieden, nachdem sich die App im Leerlauf befindet. So ändern Sie die einstellung für Always On:

  1. Wechseln Sie in der 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 "Ein" aus.

Gewusst wie fehlgeschlagene Anforderungsablaufverfolgung aktivieren?

Führen Sie die folgenden Schritte aus, um die Fehlgeschlagene Anforderungsablaufverfolgung zu aktivieren:

  1. Wechseln Sie in der Azure-Portal zu Ihrer Web-App.

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

  3. Wählen Sie für die Ablaufverfolgung für fehlgeschlagene 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 aktiviert ist, wählen Sie " Ein" aus.

  8. Wählen Sie Los.

  9. Wählen Sie Web.config aus.

  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. Zum Herunterladen der fehlgeschlagenen Anforderungsablaufverfolgungen wechseln Sie im Portal zu Ihrer Website.

  13. Wählen Sie "ExtrasKuduGo > > " aus.

  14. Wählen Sie im Menü "ConsoleCMD > debuggen" 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.

Ich sehe die Meldung "Der Arbeitsprozess hat den Papierkorb aufgrund des Grenzwerts für den Prozentualen Speicher angefordert". Gewusst wie dieses Problem beheben?

Die maximal verfügbare Speichermenge 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 Gründen der Kompatibilität mit älteren Webanwendungen).

Erwägen Sie den Wechsel zu 64-Bit-Prozessen, damit Sie den zusätzlichen Speicher nutzen können, der in Ihrer Web Worker-Rolle verfügbar ist. Diese Aktion löst einen Neustart der Web-App aus. Planen Sie daher entsprechend.

Beachten Sie außerdem, dass für eine 64-Bit-Umgebung ein Standard- oder Standarddienstplan erforderlich ist. Kostenlose und freigegebene Pläne werden immer in einer 32-Bit-Umgebung ausgeführt.

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

Warum kommt es zu einem Timeout meiner Anforderung nach 230 Sekunden?

Azure Load Balancer hat eine standardmäßige Leerlaufzeittimeouteinstellung von vier Minuten. Diese Einstellung ist im Allgemeinen ein angemessenes Antwortzeitlimit für eine Webanforderung. daher gibt App Service ein Timeout an den Client zurück, wenn ihre Anwendung nicht innerhalb von etwa 240 Sekunden eine Antwort zurückgibt (230 Sekunden für Windows App, 240 Sekunden für die Linux-App).Wenn für Ihre Web-App Hintergrundverarbeitung erforderlich ist, 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 durchfü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, zeitweise 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 ASP.NET Core 1.0.3-Update enthalten. Um dieses Problem zu beheben, müssen 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 langsame Probleme 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 LogFiles- und Datenordner für Ihre App Service Instanz betroffen. Wenn der lokale Cache verwendet wird, werden Unterordner in den Speicher-LogFiles und Datenordnern erstellt. Die Unterordner verwenden das Benennungsmuster "eindeutiger Bezeichner" + Zeitstempel. Jeder Unterordner entspricht einer VM-Instanz, in 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 der lokale 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 in einer Weise zuzugreifen, die durch seine Zugriffsberechtigungen verboten ist." Gewusst wie diesen Fehler beheben?

Dieser Fehler tritt in der Regel auf, wenn die ausgehenden TCP-Verbindungen auf der VM-Instanz erschöpft sind. In App Service werden Grenzwerte für die maximale Anzahl ausgehender Verbindungen erzwungen, die für jede VM-Instanz 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 "Lokale Adressanforderungen".

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

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

Eine ausführliche exemplarische Vorgehensweise zum Debuggen Ihrer Web-App mithilfe von Visual Studio finden Sie unter Remotedebugging 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.