Problembehandlung von Apps in Azure App Service mit Visual StudioTroubleshoot an app in Azure App Service using Visual Studio

ÜbersichtOverview

In diesem Tutorial lernen Sie die Visual Studio-Tools zum Debuggen von Apps in App Service kennen. Sie führen die App remote im Debugmodus aus oder zeigen Anwendungs- und Webserverprotokolle an.This tutorial shows how to use Visual Studio tools to help debug an app in App Service, by running in debug mode remotely or by viewing application logs and web server logs.

Sie lernen Folgendes:You'll learn:

  • In Visual Studio verfügbare App-VerwaltungsfunktionenWhich app management functions are available in Visual Studio.
  • Verwenden der Remoteansicht in Visual Studio für schnelle Änderungen an Remote-AppsHow to use Visual Studio remote view to make quick changes in a remote app.
  • Ausführen des Debugmodus im Remotebetrieb, während ein Projekt in Azure ausgeführt wird, für Apps und für WebJobsHow to run debug mode remotely while a project is running in Azure, both for an app and for a WebJob.
  • Erstellen von Anwendungs-Ablaufprotokollen und Live-Anzeige dieser Protokolle.How to create application trace logs and view them while the application is creating them.
  • Anzeige von Webserverprotokollen inklusive detaillierter Fehlermeldungen und Verfolgung fehlgeschlagener Anforderungen.How to view web server logs, including detailed error messages and failed request tracing.
  • Senden von Diagnoseprotokollen an ein Azure-Speicherkonto und Anzeige der Protokolle.How to send diagnostic logs to an Azure Storage account and view them there.

Wenn Sie über Visual Studio Ultimate verfügen, können Sie auch IntelliTrace zum Debuggen verwenden.If you have Visual Studio Ultimate, you can also use IntelliTrace for debugging. IntelliTrace wird in diesem Lernprogramm nicht behandelt.IntelliTrace is not covered in this tutorial.

VoraussetzungenPrerequisites

Dieses Tutorial verwendet die Entwicklungsumgebung, das Webprojekt und die App Service-App, die Sie unter Erstellen von ASP.NET-Apps in Azure App Service eingerichtet haben.This tutorial works with the development environment, web project, and App Service app that you set up in Create an ASP.NET app in Azure App Service. Für die WebJobs-Abschnitte benötigen Sie die Anwendung, die Sie in den ersten Schritten mit dem Azure WebJobs SDK erstellen.For the WebJobs sections, you'll need the application that you create in Get Started with the Azure WebJobs SDK.

Die Codebeispiele in diesem Lernprogramm stammen aus einer C# MVC-Webanwendung. Die Prozeduren gelten jedoch auch für die Problembehandlung in Visual Basic- und Web Forms-Anwendungen.The code samples shown in this tutorial are for a C# MVC web application, but the troubleshooting procedures are the same for Visual Basic and Web Forms applications.

Dieses Tutorial setzt voraus, dass Sie Visual Studio 2019 verwenden.The tutorial assumes you're using Visual Studio 2019.

Die Streamingprotokoll-Funktion funktioniert nur für Anwendungen, die das .NET Framework 4 oder später verwenden.The streaming logs feature only works for applications that target .NET Framework 4 or later.

App-Konfiguration und -VerwaltungApp configuration and management

Visual Studio bietet Zugriff auf einen Teil der App-Verwaltungsfunktionen und -Konfigurationseinstellungen, die im Azure-Portal verfügbar sind.Visual Studio provides access to a subset of the app management functions and configuration settings available in the Azure portal. In diesem Abschnitt lernen Sie die Optionen kennen, die bei Verwendung des Server-Explorers verfügbar sind.In this section, you'll see what's available by using Server Explorer. Um die neuesten Azure-Integrationsfeatures kennen zu lernen, probieren Sie auch den Cloud-Explorer aus.To see the latest Azure integration features, try out Cloud Explorer also. Sie können beide Fenster über das Menü Ansicht öffnen.You can open both windows from the View menu.

  1. Wenn Sie in Visual Studio noch nicht bei Azure angemeldet sind, klicken Sie mit der rechten Maustaste auf Azure, und wählen Sie die Verbindung mit Ihrem Microsoft Azure-Abonnement im Server-Explorer aus.If you aren't already signed in to Azure in Visual Studio, right-click Azure and select Connect to Microsoft Azure Subscription in Server Explorer.

    Als Alternative können Sie ein Verwaltungszertifikat installieren, das den Zugriff auf Ihr Konto ermöglicht.An alternative is to install a management certificate that enables access to your account. Wenn Sie ein Zertifikat installieren möchten, klicken Sie im Server-Explorer mit der rechten Maustaste auf den Knoten Azure, und wählen Sie im Kontextmenü Abonnements verwalten und filtern aus.If you choose to install a certificate, right-click the Azure node in Server Explorer, and then select Manage and Filter Subscriptions in the context menu. Klicken Sie im Dialogfeld Microsoft Azure-Abonnements verwalten auf die Registerkarte Zertifikate und dann auf Importieren.In the Manage Microsoft Azure Subscriptions dialog box, click the Certificates tab, and then click Import. Befolgen Sie die Anweisungen zum Herunterladen und Importieren einer Abonnementdatei (auch .publishsettings -Datei genannt) für Ihr Azure-Konto.Follow the directions to download and then import a subscription file (also called a .publishsettings file) for your Azure account.

    Hinweis

    Wenn Sie eine Abonnementdatei herunterladen, sollten Sie diese in einem Ordner außerhalb Ihrer Quellcodeverzeichnisse speichern (beispielsweise im Ordner "Downloads") und nach Abschluss des Importvorgangs löschen.If you download a subscription file, save it to a folder outside your source code directories (for example, in the Downloads folder), and then delete it once the import has completed. Böswillige Benutzer, die Zugriff auf die Abonnementdatei erlangen, können Ihre Azure-Services bearbeiten, erstellen und löschen.A malicious user who gains access to the subscription file can edit, create, and delete your Azure services.

    Weitere Informationen für Verbindungen zwischen Visual Studio und Azure-Ressourcen finden Sie unter Verwalten von Konten, Abonnements und Administratorrollen.For more information about connecting to Azure resources from Visual Studio, see Manage Accounts, Subscriptions, and Administrative Roles.

  2. Erweitern Sie im Server-Explorer den Knoten Azure, und erweitern Sie dann App Service.In Server Explorer, expand Azure and expand App Service.

  3. Erweitern Sie die Ressourcengruppe, die die in Erstellen einer ASP.NET-App in Azure App Service erstellte App enthält, klicken Sie mit der rechten Maustaste auf den App-Knoten, und klicken Sie dann auf Anzeigeeinstellungen.Expand the resource group that includes the app that you created in Create an ASP.NET app in Azure App Service, and then right-click the app node and click View Settings.

    Anzeigeeinstellungen im Server-Explorer

    Die Registerkarte Azure-Web-App wird angezeigt, und Sie sehen dort die in Visual Studio verfügbaren Aufgaben für die App-Verwaltung und -Konfiguration.The Azure Web App tab appears, and you can see there the app management and configuration tasks that are available in Visual Studio.

    Fenster "Azure-Web-App"

    In diesem Tutorial verwenden Sie die Auswahllisten für Protokollierung und Ablaufverfolgung.In this tutorial, you'll use the logging and tracing drop-downs. Außerdem werden Sie Remotedebugging verwenden, allerdings wird diese Option auf andere Weise aktiviert.You'll also use remote debugging but you'll use a different method to enable it.

    Weitere Informationen zu den Feldern für App-Einstellungen und Verbindungszeichenfolgen in diesem Fenster finden Sie unter Azure App Service: Funktionsweise von Anwendungs- und Verbindungszeichenfolgen.For information about the App Settings and Connection Strings boxes in this window, see Azure App Service: How Application Strings and Connection Strings Work.

    Wenn Sie eine App-Verwaltungsaufgabe ausführen möchten, die in diesem Fenster nicht ausgeführt werden kann, klicken Sie auf Im Verwaltungsportal öffnen, um ein Browserfenster im Azure-Portal zu öffnen.If you want to perform an app management task that can't be done in this window, click Open in Management Portal to open a browser window to the Azure portal.

Zugreifen auf App-Dateien im Server-ExplorerAccess app files in Server Explorer

Das customErrors-Kennzeichen in der Datei "Web.config" ist bei der Bereitstellung eines Webprojekts üblicherweise auf On oder RemoteOnly festgelegt. Das bedeutet, dass Sie bei einem Problem keine erklärende Fehlermeldung erhalten.You typically deploy a web project with the customErrors flag in the Web.config file set to On or RemoteOnly, which means you don't get a helpful error message when something goes wrong. Für viele Fehler wird eine der folgenden Seiten angezeigt:For many errors, all you get is a page like one of the following ones:

Serverfehler in '/'-Anwendung:Server Error in '/' Application:

Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

Ein Fehler ist aufgetreten:An error occurred:

Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

Die Website kann die Seite nicht anzeigenThe website cannot display the page

Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

Häufig ist der einfachste Weg für die Suche nach der Fehlerursache die Aktivierung detaillierter Fehlermeldungen. Im ersten der vorherigen Screenshots wird dies erläutert.Frequently the easiest way to find the cause of the error is to enable detailed error messages, which the first of the preceding screenshots explains how to do. Dazu ist eine Änderung an der bereitgestellten Web.config-Datei erforderlich.That requires a change in the deployed Web.config file. Sie können die Datei Web.config im Projekt bearbeiten und das Projekt neu bereitstellen oder eine Web.config-Transformation erstellen und eine Debugversion bereitstellen. Es gibt aber noch einen einfacheren Weg: Im Projektmappen-Explorer können Sie Dateien in der Remote-App mithilfe des Features Remoteansicht direkt anzeigen und bearbeiten.You could edit the Web.config file in the project and redeploy the project, or create a Web.config transform and deploy a debug build, but there's a quicker way: in Solution Explorer, you can directly view and edit files in the remote app by using the remote view feature.

  1. Erweitern Sie im Server-Explorer den Knoten Azure, erweitern Sie App Service, erweitern Sie die Ressourcengruppe, in der sich die App befindet, und erweitern Sie dann den Knoten für die App.In Server Explorer, expand Azure, expand App Service, expand the resource group that your app is located in, and then expand the node for your app.

    Daraufhin werden Knoten angezeigt, über die Sie auf die Inhalts- und Protokolldateien der App zugreifen können.You see nodes that give you access to the app's content files and log files.

  2. Erweitern Sie den Knoten Dateien und doppelklicken Sie auf die Datei Web.config .Expand the Files node, and double-click the Web.config file.

    Öffnen der Datei Web.config

    Visual Studio öffnet die Datei „Web.config“ in der Remote-App und zeigt den Text „[Remote]“ auf der Titelleiste neben dem Dateinamen an.Visual Studio opens the Web.config file from the remote app and shows [Remote] next to the file name in the title bar.

  3. Fügen Sie dem system.web -Element die folgende Zeile hinzu:Add the following line to the system.web element:

    <customErrors mode="Off"></customErrors>

    Bearbeiten der Datei Web.config

  4. Aktualisieren Sie den Browser, der die wenig hilfreiche Fehlermeldung anzeigt, und Sie erhalten eine detailliertere Fehlermeldung, wie im folgenden Beispiel gezeigt:Refresh the browser that is showing the unhelpful error message, and now you get a detailed error message, such as the following example:

    Detaillierte Fehlermeldung

    (Dieser Fehler wurde durch Hinzufügen der in rot angezeigten Zeile zu Views\Home\Index.cshtml erstellt.)(The error shown was created by adding the line shown in red to Views\Home\Index.cshtml.)

Änderungen an der Datei „Web.config“ sind nur eines der Szenarien, in denen die Möglichkeit zum Lesen und Bearbeiten von Dateien in Ihrer App Service-App die Problembehandlung erleichtert.Editing the Web.config file is only one example of scenarios in which the ability to read and edit files on your App Service app make troubleshooting easier.

Remotedebuggen von AppsRemote debugging apps

Falls die detaillierte Fehlermeldung nicht genügend Informationen liefert und sich der Fehler nicht lokal reproduzieren lässt, können Sie die Website remote im Debugmodus ausführen.If the detailed error message doesn't provide enough information, and you can't re-create the error locally, another way to troubleshoot is to run in debug mode remotely. Im Debugmodus können Sie Breakpoints setzen, den Speicher direkt manipulieren, Code schrittweise durchlaufen und sogar den Codepfad ändern.You can set breakpoints, manipulate memory directly, step through code, and even change the code path.

Remotedebuggen funktioniert nicht in den Express-Editionen von Visual Studio.Remote debugging does not work in Express editions of Visual Studio.

Dieser Abschnitt veranschaulicht das Remotedebuggen anhand des Projekts, das Sie in Erstellen einer ASP.NET-App in Azure App Service erstellt haben.This section shows how to debug remotely using the project you create in Create an ASP.NET app in Azure App Service.

  1. Öffnen Sie das Webprojekt, das Sie in Erstellen einer ASP.NET-App in Azure App Service erstellt haben.Open the web project that you created in Create an ASP.NET app in Azure App Service.

  2. Öffnen Sie Controllers\HomeController.cs.Open Controllers\HomeController.cs.

  3. Löschen Sie die About() -Methode, und fügen Sie stattdessen den folgenden Code ein.Delete the About() method and insert the following code in its place.

    public ActionResult About()
    {
        string currentTime = DateTime.Now.ToLongTimeString();
        ViewBag.Message = "The current time is " + currentTime;
        return View();
    }
    
  4. Setzen Sie einen Haltepunkt in der Zeile: ViewBag.Message.Set a breakpoint on the ViewBag.Message line.

  5. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie anschließend auf Veröffentlichen.In Solution Explorer, right-click the project, and click Publish.

  6. Wählen Sie in der Dropdownliste Profil dasselbe Profil aus, das Sie in Erstellen einer ASP.NET-App in Azure App Service verwendet haben.In the Profile drop-down list, select the same profile that you used in Create an ASP.NET app in Azure App Service. Klicken Sie dann auf „Einstellungen“.Then, click Settings.

  7. Klicken Sie im Dialogfeld Veröffentlichen auf die Registerkarte Einstellungen, ändern Sie Konfiguration in Debug, und klicken Sie anschließend auf Speichern.In the Publish dialog, click the Settings tab, and then change Configuration to Debug, and then click Save.

    Veröffentlichen im Debugmodus

  8. Klicken Sie auf Veröffentlichen.Click Publish. Nachdem die Bereitstellung abgeschlossen ist und Ihr Browser mit der Azure-URL Ihrer App geöffnet wird, schließen Sie den Browser.After deployment finishes and your browser opens to the Azure URL of your app, close the browser.

  9. Klicken Sie im Server-Explorer mit der rechten Maustaste auf Ihre App, und klicken Sie dann auf Debugger anfügen.In Server Explorer, right-click your app, and then click Attach Debugger.

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

    Der Browser öffnet automatisch Ihre Startseite in Azure.The browser automatically opens to your home page running in Azure. Möglicherweise müssen Sie ca. 20 Sekunden warten, während Azure die den Server zum Debuggen einrichtet.You might have to wait 20 seconds or so while Azure sets up the server for debugging. Diese Verzögerung tritt nur bei der ersten Ausführung einer App im Debugmodus innerhalb von 48 Stunden auf.This delay only happens the first time you run in debug mode on an app in a 48-hour period. Wenn Sie das Debuggen im gleichen Zeitraum erneut starten, tritt keine Verzögerung auf.When you start debugging again in the same period, there isn't a delay.

    Hinweis

    Wenn beim Starten des Debuggers Probleme auftreten, versuchen Sie es über den Cloud-Explorer anstelle des Server-Explorers.If you have any trouble starting the debugger, try to do it by using Cloud Explorer instead of Server Explorer.

  10. Klicken Sie im Menü auf Info .Click About in the menu.

    Visual Studio hält am Breakpoint an, wobei der Code nicht auf Ihrem lokalen Computer läuft, sondern unter Azure.Visual Studio stops on the breakpoint, and the code is running in Azure, not on your local computer.

  11. Zeigen Sie auf die Variable currentTime , um den Zeitwert anzuzeigen.Hover over the currentTime variable to see the time value.

    Anzeigen von Variablen im Debugmodus in Azure

    Bei der angezeigten Zeit handelt es sich um die Azure-Serverzeit, deren Zeitzone sich von Ihrer lokalen Einstellung unterscheiden kann.The time you see is the Azure server time, which may be in a different time zone than your local computer.

  12. Geben Sie einen neuen Wert für die Variable currentTime ein, z. B. "Ausführung unter Azure".Enter a new value for the currentTime variable, such as "Now running in Azure".

  13. Drücken Sie F5, um die Ausführung fortzusetzen.Press F5 to continue running.

    Die Info-Seite unter Azure zeigt daraufhin den neuen Wert an, den Sie für die Variable currentTime eingegeben haben.The About page running in Azure displays the new value that you entered into the currentTime variable.

    Info-Seite mit neuem Wert

Remotedebuggen von WebJobsRemote debugging WebJobs

Dieser Abschnitt zeigt, wie Sie das Projekt und die App, die Sie in Erste Schritte mit dem Azure WebJobs SDK erstellen, remote debuggen können.This section shows how to debug remotely using the project and app you create in Get Started with the Azure WebJobs SDK.

Die in diesem Abschnitt dargestellten Funktionen sind nur in Visual Studio 2013 mit Update 4 oder höher verfügbar.The features shown in this section are available only in Visual Studio 2013 with Update 4 or later.

Remotedebuggen funktioniert nur bei kontinuierlichen WebJobs.Remote debugging only works with continuous WebJobs. Geplante und bedarfsabhängige WebJobs unterstützen Debuggen nicht.Scheduled and on-demand WebJobs don't support debugging.

  1. Öffnen Sie das Webprojekt, das Sie in den ersten Schritten mit dem Azure WebJobs SDK erstellt haben.Open the web project that you created in Get Started with the Azure WebJobs SDK.

  2. Öffnen Sie Functions.csim Projekt "ContosoAdsWebJob".In the ContosoAdsWebJob project, open Functions.cs.

  3. Legen Sie einen Haltepunkt für die erste Anweisung in der GnerateThumbnail-Methode fest.Set a breakpoint on the first statement in the GnerateThumbnail method.

    Haltepunkt setzen

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Webprojekt (nicht das WebJob-Projekt), und klicken Sie auf Veröffentlichen.In Solution Explorer, right-click the web project (not the WebJob project), and click Publish.

  5. Wählen Sie in der Dropdownliste Profil das gleiche Profil aus, das Sie in Erste Schritte mit dem Azure WebJobs SDKverwendet haben.In the Profile drop-down list, select the same profile that you used in Get Started with the Azure WebJobs SDK.

  6. Wechseln Sie zur Registerkarte Einstellungen, ändern Sie Konfiguration in Debug, und klicken Sie anschließend auf Veröffentlichen.Click the Settings tab, and change Configuration to Debug, and then click Publish.

    Visual Studio stellt die Web- und WebJob-Projekte bereit, und Ihr Browser wird mit der Azure-URL Ihrer App geöffnet.Visual Studio deploys the web and WebJob projects, and your browser opens to the Azure URL of your app.

  7. Erweitern Sie im Server-Explorer nacheinander Azure > App Service > Ihre Ressourcengruppe > Ihre App > WebJobs > Fortlaufend, und klicken Sie dann mit der rechten Maustaste auf ContosoAdsWebJob.In Server Explorer, expand Azure > App Service > your resource group > your app > WebJobs > Continuous, and then right-click ContosoAdsWebJob.

  8. Klicken Sie auf Debugger anfügen.Click Attach Debugger.

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

    Der Browser öffnet automatisch Ihre Startseite in Azure.The browser automatically opens to your home page running in Azure. Möglicherweise müssen Sie ca. 20 Sekunden warten, während Azure die den Server zum Debuggen einrichtet.You might have to wait 20 seconds or so while Azure sets up the server for debugging. Diese Verzögerung tritt nur bei der ersten Ausführung einer App im Debugmodus innerhalb von 48 Stunden auf.This delay only happens the first time you run in debug mode on an app in a 48-hour period. Wenn Sie das Debuggen im gleichen Zeitraum erneut starten, tritt keine Verzögerung auf.When you start debugging again in the same period, there isn't a delay.

  9. Erstellen Sie in dem Webbrowser, in dem die Contoso Ads-Startseite geöffnet ist, eine neue Anzeige.In the web browser that is opened to the Contoso Ads home page, create a new ad.

    Durch Erstellen einer Anzeige wird eine Warteschlangennachricht erstellt, die vom WebJob übernommen und bearbeitet wird.Creating an ad causes a queue message to be created, which is picked up by the WebJob and processed. Wenn das WebJobs SDK die Funktion zur Verarbeitung der Warteschlangennachricht aufruft, erreicht der Code den Haltepunkt.When the WebJobs SDK calls the function to process the queue message, the code hits your breakpoint.

  10. Wenn der Debugger am Breakpoint unterbrochen wird, können Sie Variablenwerte überprüfen und ändern, während das Programm die Cloud ausführt.When the debugger breaks at your breakpoint, you can examine and change variable values while the program is running the cloud. In der folgenden Abbildung zeigt der Debugger den Inhalt des blobInfo-Objekts an, das an die GenerateThumbnail-Methode übergeben wurde.In the following illustration, the debugger shows the contents of the blobInfo object that was passed to the GenerateThumbnail method.

    BlobInfo-Objekt im Debugger

  11. Drücken Sie F5, um die Ausführung fortzusetzen.Press F5 to continue running.

    Die GenerateThumbnail-Methode schließt die Erstellung der Miniaturansicht ab.The GenerateThumbnail method finishes creating the thumbnail.

  12. Aktualisieren Sie im Browser die Indexseite, um die Miniaturansicht anzuzeigen.In the browser, refresh the Index page and you see the thumbnail.

  13. Drücken Sie in Visual Studio UMSCHALT + F5, um das Debuggen zu beenden.In Visual Studio, press SHIFT+F5 to stop debugging.

  14. Klicken Sie im Server-Explorer mit der rechten Maustaste auf den Knoten „ContosoAdsWebJob“, und klicken Sie dann auf Dashboard anzeigen.In Server Explorer, right-click the ContosoAdsWebJob node and click View Dashboard.

  15. Melden Sie sich mit Ihren Azure-Anmeldeinformationen an, und klicken Sie dann auf den WebJob-Namen, um zu der Seite für den WebJob zu wechseln.Sign in with your Azure credentials, and then click the WebJob name to go to the page for your WebJob.

    Auf ContosoAdsWebJob klicken

    Das Dashboard zeigt, dass die GenerateThumbnail-Funktion vor Kurzem ausgeführt wurde.The Dashboard shows that the GenerateThumbnail function executed recently.

    (Wenn Sie nächstes Mal auf Dashboard anzeigenklicken, müssen Sie sich nicht anmelden, und der Browser wechselt direkt zur Seite für Ihren WebJob.)(The next time you click View Dashboard, you don't have to sign in, and the browser goes directly to the page for your WebJob.)

  16. Klicken Sie auf den Funktionsnamen, um Details zur Ausführung der Funktion anzuzeigen.Click the function name to see details about the function execution.

    Funktionsdetails

Wenn die Funktion Protokolle geschrieben hat, können Sie auf ToggleOutput klicken, um sie anzuzeigen.If your function wrote logs, you could click ToggleOutput to see them.

Hinweise zum RemotedebuggenNotes about remote debugging

  • Vermeiden Sie es, den Debugmodus in Produktion einzusetzen.Running in debug mode in production is not recommended. Wenn Ihre Produktions-App nicht auf mehrere Serverinstanzen dezentral skaliert wird, verhindert das Debuggen, dass der Webserver auf andere Anforderungen reagiert.If your production app is not scaled out to multiple server instances, debugging prevents the web server from responding to other requests. Falls Sie mehrere Webserverinstanzen betreiben, erhalten Sie beim Anhängen des Debuggers eine zufällige Instanz, und Sie können nicht garantieren, dass Ihre Browseranforderungen an dieselbe Instanz gehen.If you do have multiple web server instances, when you attach to the debugger, you get a random instance, and you have no way to ensure that subsequent browser requests go to the same instance. Außerdem ist es unüblich, Debugversionen in Produktion bereitzustellen, und Compileroptimierungen für Releaseversionen verhindern die zeilenweise Anzeige der Vorgänge in Ihrem Quellcode.Also, you typically don't deploy a debug build to production, and compiler optimizations for release builds might make it impossible to show what is happening line by line in your source code. Die beste Möglichkeit zur Problembehandlung von Produktionsproblemen sind Ablaufverfolgung und Webserverprotokolle.For troubleshooting production problems, your best resource is application tracing and web server logs.

  • Vermeiden Sie es beim Remotedebuggen, lange an Breakpoints anzuhalten.Avoid long stops at breakpoints when remote debugging. Azure behandelt Prozesse, die länger als einige Minuten angehalten sind, als nicht reagierend und beendet diese.Azure treats a process that is stopped for longer than a few minutes as an unresponsive process, and shuts it down.

  • Beim Debuggen schickt der Server Daten an Visual Studio und verursacht möglicherweise zusätzliche Kosten für Bandbreite.While you're debugging, the server is sending data to Visual Studio, which could affect bandwidth charges. Weitere Informationen zu Bandbreitentarifen finden Sie unter Azure Pricing(Azure-Preisübersicht, in englischer Sprache).For information about bandwidth rates, see Azure Pricing.

  • Stellen Sie sicher, dass das debug-Attribut im compilation-Element in der Datei Web.config auf „true“ festgelegt ist.Make sure that the debug attribute of the compilation element in the Web.config file is set to true. Dieses Attribut ist beim Veröffentlichen einer Debug-Buildkonfiguration standardmäßig "true".It is set to true by default when you publish a debug build configuration.

    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
    
  • Falls der Debugger nicht in den gewünschten Code wechselt, müssen Sie möglicherweise die Einstellung „Nur eigenen Code“ ändern.If you find that the debugger doesn't step into the code that you want to debug, you might have to change the Just My Code setting. Weitere Informationen finden Sie unter Angeben, ob nur das Debuggen von Benutzercode mit „Nur eigenen Code“ in Visual Studio erfolgen soll.For more information, see Specify whether to debug only user code using Just My Code in Visual Studio.

  • Bei Aktivierung der Remotedebuggen-Funktion startet ein Timer auf dem Server, und die Funktion wird nach 48 Stunden automatisch abgeschaltet.A timer starts on the server when you enable the remote debugging feature, and after 48 hours the feature is automatically turned off. Dieses Limit von 48 Stunden existiert aus Sicherheits- und Leistungsgründen.This 48-hour limit is done for security and performance reasons. Sie können die Funktion jederzeit und beliebig oft aktivieren.You can easily turn the feature back on as many times as you like. Wenn Sie nicht aktiv debuggen, sollten Sie die Funktion jedoch deaktivieren.We recommend leaving it disabled when you are not actively debugging.

  • Sie können den Debugger manuell an einen beliebigen Prozess anfügen, nicht nur an den App-Prozess („w3wp.exe“).You can manually attach the debugger to any process, not only the app process (w3wp.exe). Weitere Informationen zum Debugmodus in Visual Studio finden Sie unter Debuggen in Visual Studio.For more information about how to use debug mode in Visual Studio, see Debugging in Visual Studio.

Übersicht über DiagnoseprotokolleDiagnostic logs overview

ASP.NET-Anwendungen in App Service-Apps können die folgenden Arten von Protokollen generieren:An ASP.NET application that runs in an App Service app can create the following kinds of logs:

  • AnwendungsnachverfolgungsprotokolleApplication tracing logs
    Anwendungen erzeugen diese Protokolle, indem sie Methoden der Klasse System.Diagnostics.Trace aufrufen.The application creates these logs by calling methods of the System.Diagnostics.Trace class.
  • WebserverprotokolleWeb server logs
    Der Webserver erstellt einen Protokolleintrag für jede HTTP-Anforderung an die App.The web server creates a log entry for every HTTP request to the app.
  • Ausführliche FehlerprotokolleDetailed error message logs
    Der Webserver erstellt eine HTML-Seite mit zusätzlichen Informationen für fehlerhafte HTTP-Anforderungen (Anforderungen mit einem Statuscode von 400 oder höher).The web server creates an HTML page with some additional information for failed HTTP requests (requests that result in status code 400 or greater).
  • Nachverfolgungsprotokolle für Anforderungen mit FehlernFailed request tracing logs
    Der Webserver erstellt eine XML-Datei mit detaillierten Ablaufverfolgungsinformationen für fehlgeschlagene HTTP-Anforderungen.The web server creates an XML file with detailed tracing information for failed HTTP requests. Der Webserver liefert außerdem eine XSL-Datei zur Formatierung der XML-Datei in einem Browser.The web server also provides an XSL file to format the XML in a browser.

Protokollierung beeinträchtigt die Leistung von Apps. Daher können Sie die verschiedenen Protokolltypen unter Azure bei Bedarf einzeln aktivieren und deaktivieren.Logging affects app performance, so Azure gives you the ability to enable or disable each type of log as needed. Für Anwendungsprotokolle können Sie angeben, dass nur Protokolleinträge oberhalb eines bestimmten Schweregrads geschrieben werden sollen.For application logs, you can specify that only logs above a certain severity level should be written. Bei der Erstellung neuer Apps ist sämtliche Protokollierung standardmäßig deaktiviert.When you create a new app, by default all logging is disabled.

Die Protokolle werden in den Ordner LogFiles im Dateisystem Ihrer App geschrieben und sind über FTP zugänglich.Logs are written to files in a LogFiles folder in the file system of your app and are accessible via FTP. Webserver- und Anwendungsprotokolle können auch in ein Azure Storage-Konto geschrieben werden.Web server logs and application logs can also be written to an Azure Storage account. Speicherkonten bieten mehr Kapazität für Protokolle als das Dateisystem.You can retain a greater volume of logs in a storage account than is possible in the file system. Protokolle im Dateisystem sind beschränkt auf 100 Megabyte.You're limited to a maximum of 100 megabytes of logs when you use the file system. (Protokolle im Dateisystem werden nur für kurze Zeit aufbewahrt.(File system logs are only for short-term retention. Azure löscht alte Protokolldateien, um Platz für neue Dateien zu machen, wenn das Limit erreicht ist.)Azure deletes old log files to make room for new ones after the limit is reached.)

Erstellen und Anzeigen von Anwendungs-AblaufprotokollenCreate and view application trace logs

In diesem Abschnitt führen Sie die folgenden Aufgaben aus:In this section, you do the following tasks:

  • Fügen Sie dem Webprojekt, das Sie in Erste Schritte mit Azure und ASP.NET erstellt haben, Ablaufverfolgungsanweisungen hinzu.Add tracing statements to the web project that you created in Get started with Azure and ASP.NET.
  • Anzeigen der Protokolle, wenn Sie das Projekt lokal ausführen.View the logs when you run the project locally.
  • Anzeigen der Protokolle, während diese von der Anwendung unter Azure generiert werden.View the logs as they are generated by the application running in Azure.

Informationen zum Erstellen von Anwendungsprotokollen in WebJobs finden Sie unter Verwenden des Azure-Warteschlangenspeichers mithilfe des WebJobs SDK - Schreiben von Protokollen.For information about how to create application logs in WebJobs, see How to work with Azure queue storage using the WebJobs SDK - How to write logs. Die folgenden Anweisungen für das Anzeigen von Protokollen und das Speichern in Azure gelten auch für Anwendungsprotokolle, die von WebJobs erstellt werden.The following instructions for viewing logs and controlling how they're stored in Azure apply also to application logs created by WebJobs.

Hinzufügen von Ablaufverfolgungs-Anweisungen zur AnwendungAdd tracing statements to the application

  1. Öffnen Sie Controllers\HomeController.cs, und ersetzen Sie die Methoden Index, About, und Contact durch den folgenden Code, um Trace-Anweisungen und eine using-Anweisung für System.Diagnostics hinzuzufügen:Open Controllers\HomeController.cs, and replace the Index, About, and Contact methods with the following code in order to add Trace statements and a using statement for System.Diagnostics:

    public ActionResult Index()
    {
        Trace.WriteLine("Entering Index method");
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
        Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Index method");
        return View();
    }
    
    public ActionResult About()
    {
        Trace.WriteLine("Entering About method");
        ViewBag.Message = "Your app description page.";
        Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString());
        Trace.WriteLine("Leaving About method");
        return View();
    }
    
    public ActionResult Contact()
    {
        Trace.WriteLine("Entering Contact method");
        ViewBag.Message = "Your contact page.";
        Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Contact method");
        return View();
    }        
    
  2. Fügen Sie oben in der Datei eine using System.Diagnostics; -Anweisung hinzu.Add a using System.Diagnostics; statement to the top of the file.

Lokale Anzeige der Ablaufverfolgungs-AusgabeView the tracing output locally

  1. Drücken Sie F5, um die Anwendung im Debugmodus auszuführen.Press F5 to run the application in debug mode.

    Der Standard-Ablaufverfolgungs-Listener schreibt sämtliche Ausgaben in das Ausgabefenster , zusammen mit anderen Debugausgaben.The default trace listener writes all trace output to the Output window, along with other Debug output. Die folgende Abbildung zeigt die Ausgaben der Ablaufverfolgungsanweisungen, die Sie der Index -Methode hinzugefügt haben.The following illustration shows the output from the trace statements that you added to the Index method.

    Ablaufverfolgung im Debugfenster

    Anhand der folgenden Schritte können Sie Ablaufverfolgungs-Ausgaben in einer Webseite anzeigen, ohne im Debugmodus zu kompilieren.The following steps show how to view trace output in a web page, without compiling in debug mode.

  2. Öffnen Sie die Web.config-Datei der Anwendung (die Datei im Projektordner) und fügen Sie das Element <system.diagnostics> am Ende der Datei direkt vor dem abschließenden </configuration>-Element ein:Open the application Web.config file (the one located in the project folder) and add a <system.diagnostics> element at the end of the file just before the closing </configuration> element:

    <system.diagnostics>
    <trace>
      <listeners>
        <add name="WebPageTraceListener"
            type="System.Web.WebPageTraceListener,
            System.Web,
            Version=4.0.0.0,
            Culture=neutral,
            PublicKeyToken=b03f5f7f11d50a3a" />
      </listeners>
    </trace>
    </system.diagnostics>
    

Über WebPageTraceListener können Sie die Ausgabe der Ablaufverfolgung anzeigen, indem Sie zu /trace.axd navigieren.The WebPageTraceListener lets you view trace output by browsing to /trace.axd.

  1. Fügen Sie ein trace-Element unter <system.web> in die Web.config-Datei ein, wie im folgenden Beispiel gezeigt:Add a trace element under <system.web> in the Web.config file, such as the following example:

    <trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
    
  2. Drücken Sie STRG+F5, um die Anwendung auszuführen.Press CTRL+F5 to run the application.

  3. Fügen Sie der URL in der Adressleiste des Browserfensters trace.axd hinzu, und drücken Sie die EINGABETASTE (die URL sollte dieser ähneln: http://localhost:53370/trace.axd).In the address bar of the browser window, add trace.axd to the URL, and then press Enter (the URL is similar to http://localhost:53370/trace.axd).

  4. Klicken Sie auf der Seite Anwendungsablaufverfolgung auf Details anzeigen in der ersten Zeile (nicht in der BrowserLink-Zeile).On the Application Trace page, click View Details on the first line (not the BrowserLink line).

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

    Daraufhin wird die Seite Anforderungsdetails angezeigt, und im Bereich Überwachungsinformationen sehen Sie die Ausgabe der Ablaufverfolgungs-Anweisungen, die Sie der Index-Methode hinzugefügt haben.The Request Details page appears, and in the Trace Information section you see the output from the trace statements that you added to the Index method.

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

    trace.axd ist standardmäßig nur lokal verfügbar.By default, trace.axd is only available locally. Sie können dem trace-Element in der Datei Web.config die Zeile localOnly="false" hinzufügen, um die Datei in einer Remote-App verfügbar zu machen, wie im folgenden Beispiel gezeigt:If you wanted to make it available from a remote app, you could add localOnly="false" to the trace element in the Web.config file, as shown in the following example:

    <trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
    

    Das Aktivieren von trace.axd in einer Produktions-App wird jedoch aus Sicherheitsgründen nicht empfohlen.However, enabling trace.axd in a production app is not recommended for security reasons. In den folgenden Abschnitten finden Sie eine einfachere Möglichkeit zum Lesen von Ablaufverfolgungsprotokollen in einer App Service-App.In the following sections, you'll see an easier way to read tracing logs in an App Service app.

Anzeige der Ablaufverfolgungs-Ausgabe in AzureView the tracing output in Azure

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Webprojekt und anschließend auf Veröffentlichen.In Solution Explorer, right-click the web project and click Publish.

  2. Klicken Sie im Dialogfeld Web veröffentlichen auf Veröffentlichen.In the Publish Web dialog box, click Publish.

    Nachdem Visual Studio Ihr Update veröffentlicht hat, wird ein Browserfenster mit Ihrer Startseite geöffnet (sofern Sie Ziel-URL auf der Registerkarte Verbindung nicht gelöscht haben).After Visual Studio publishes your update, it opens a browser window to your home page (assuming you didn't clear Destination URL on the Connection tab).

  3. Klicken Sie im Server-Explorer mit der rechten Maustaste auf die App, und wählen Sie Streamingprotokolle anzeigen aus.In Server Explorer, right-click your app and select View Streaming Logs.

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

    Das Ausgabefenster zeigt an, dass Sie mit dem Protokollstreamingdienst verbunden sind und fügt eine Benachrichtigungszeile für jede Minute hinzu, in der kein anzuzeigendes Protokoll eingeht.The Output window shows that you are connected to the log-streaming service, and adds a notification line each minute that goes by without a log to display.

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

  4. Klicken Sie im Browserfenster, in dem die Startseite Ihrer Anwendung geöffnet ist, auf Contact.In the browser window that shows your application home page, click Contact.

    Innerhalb weniger Sekunden wird die Ausgabe der Ablaufverfolgung mit dem Schweregrad „Fehler“, die Sie der Contact-Methode hinzugefügt haben, im Ausgabefenster angezeigt.Within a few seconds, the output from the error-level trace you added to the Contact method appears in the Output window.

    Fehler-Ablaufverfolgung im Ausgabefenster

    Visual Studio zeigt standardmäßig nur Ablaufverfolgungsprotokolle mit dem Schweregrad Fehler an, wenn der Protokollüberwachungsdienst gestartet wird.Visual Studio is only showing error-level traces because that is the default setting when you enable the log monitoring service. Beim Erstellen einer neuen App Service-App ist sämtliche Protokollierung standardmäßig deaktiviert, wie Sie zuvor auf der Einstellungsseite gesehen haben:When you create a new App Service app, all logging is disabled by default, as you saw when you opened the settings page earlier:

    Anwendungsprotokollierung deaktiviert

    Bei Auswahl von Streamingprotokolle anzeigen wurde jedoch von Visual Studio automatisch Anwendungsprotokollierung (Dateisystem) auf Fehler festgelegt, sodass Protokolle mit dem Schweregrad „Fehler“ gemeldet werden.However, when you selected View Streaming Logs, Visual Studio automatically changed Application Logging(File System) to Error, which means error-level logs get reported. Sie können diese Einstellung auf Ausführlichändern, falls Sie sämtliche Ablaufverfolgungs-Protokolle sehen möchten.In order to see all of your tracing logs, you can change this setting to Verbose. Wenn Sie einen Schweregrad unterhalb von Fehler auswählen, werden die Protokolleinträge der höheren Schweregrade ebenfalls geschrieben.When you select a severity level lower than error, all logs for higher severity levels are also reported. Wenn Sie also ausführlich auswählen, werden die Protokolleinträge für Information, Warnung und Fehler geschrieben.So when you select verbose, you also see information, warning, and error logs.

  5. Klicken Sie im Server-Explorer mit der rechten Maustaste auf die App, und klicken Sie dann wie zuvor auf Anzeigeeinstellungen.In Server Explorer, right-click the app, and then click View Settings as you did earlier.

  6. Ändern Sie Anwendungsprotokollierung (Dateisystem) in Ausführlich, und klicken Sie auf Speichern.Change Application Logging (File System) to Verbose, and then click Save.

    Einstellen des Ablaufverfolgungs-Schweregrads auf Ausführlich

  7. Klicken Sie im Browserfenster, in dem Ihre Kontakt-Seite angezeigt wird, auf Start, anschließend auf Info und dann auf Kontakt.In the browser window that is now showing your Contact page, click Home, then click About, and then click Contact.

    Innerhalb weniger Sekunden wird im Ausgabefenster Ihre gesamte Ablaufverfolgungsausgabe angezeigt.Within a few seconds, the Output window shows all of your tracing output.

    Ablaufverfolgungs-Schweregrad Ausführlich

    In diesem Abschnitt haben Sie die Protokollierung über die App-Einstellungen aktiviert und deaktiviert.In this section, you enabled and disabled logging by using app settings. Sie können die Ablaufverfolgungs-Listener auch über die Datei Web.config aktivieren bzw. deaktivieren.You can also enable and disable trace listeners by modifying the Web.config file. Wenn Sie jedoch die Datei „Web.config“ ändern, wird die App-Domäne neu gestartet. Dies geschieht bei Aktivierung der Protokollierung über die App-Konfiguration nicht.However, modifying the Web.config file causes the app domain to recycle, while enabling logging via the app configuration doesn't do that. Falls das Problem schwer zu reproduzieren ist oder nur zeitweilig auftritt, kann es passieren, dass das Problem beim Neustart der Domäne verschwindet und Sie warten müssen, bis es erneut auftritt.If the problem takes a long time to reproduce, or is intermittent, recycling the app domain might "fix" it and force you to wait until it happens again. Durch Aktivieren der Diagnose in Azure können Sie sofort mit der Erfassung der Fehlerinformationen beginnen, ohne die App-Domäne neu starten zu müssen.Enabling diagnostics in Azure lets you start capturing error information immediately without recycling the app domain.

Funktionen des AusgabefenstersOutput window features

Die Registerkarte Microsoft Azure-Protokolle im Ausgabefenster enthält verschiedene Schaltflächen und ein Textfeld:The Microsoft Azure Logs tab of the Output Window has several buttons and a text box:

Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

Diese Schaltflächen bieten die folgenden Funktionen:These perform the following functions:

  • Löschen des Ausgabefensters .Clear the Output window.
  • Aktivieren bzw. Deaktivieren des Zeilenumbruchs.Enable or disable word wrap.
  • Starten bzw. Stoppen der Protokollüberwachung.Start or stop monitoring logs.
  • Angeben, welche Protokolle überwacht werden sollen.Specify which logs to monitor.
  • Herunterladen von Protokollen.Download logs.
  • Filtern von Protokollen anhand von Suchzeichenfolgen oder regulären Ausdrücken.Filter logs based on a search string or a regular expression.
  • Schließen des Ausgabefensters .Close the Output window.

Wenn Sie eine Suchzeichenfolge oder einen regulären Ausdruck eingeben, filtert Visual Studio die Protokollinformationen clientseitig.If you enter a search string or regular expression, Visual Studio filters logging information at the client. Daher können Sie die Kriterien eingeben, nachdem die Protokolle im Ausgabefenster angezeigt wurden, und Sie können die Filterkriterien ändern, ohne die Protokolle neu generieren zu müssen.That means you can enter the criteria after the logs are displayed in the Output window and you can change filtering criteria without having to regenerate the logs.

Erstellen von WebserverprotokollenView web server logs

Webserverprotokolle zeichnen sämtliche HTTP-Aktivitäten für die App auf.Web server logs record all HTTP activity for the app. Sie müssen diese Protokolle für die App aktivieren und Visual Studio mitteilen, dass Sie sie überwachen möchten, um sie im Ausgabefenster anzeigen zu können.In order to see them in the Output window, you must enable them for the app and tell Visual Studio that you want to monitor them.

  1. Ändern Sie auf der Registerkarte Azure Web App Configuration (Azure-Web-App-Konfiguration), die Sie im Server-Explorer geöffnet haben, die Webserverprotokollierung in Ein, und klicken Sie dann auf Speichern.In the Azure Web App Configuration tab that you opened from Server Explorer, change Web Server Logging to On, and then click Save.

    Aktivieren der Webserverprotokollierung

  2. Klicken Sie im Ausgabefenster auf die Schaltfläche Geben Sie an, welche Microsoft Azure-Protokolle überwacht werden sollen.In the Output Window, click the Specify which Microsoft Azure logs to monitor button.

    Angeben, welche Azure-Protokolle überwacht werden sollen

  3. Wählen Sie im Dialogfeld Microsoft Azure-Protokollierungsoptionen die Option Webserverprotokolle aus, und klicken Sie dann auf OK.In the Microsoft Azure Logging Options dialog box, select Web server logs, and then click OK.

    Überwachen von Webserverprotokollen

  4. Klicken Sie im Browserfenster, in dem Ihre App angezeigt wird, auf Start, anschließend auf Info und dann auf Kontakt.In the browser window that shows the app, click Home, then click About, and then click Contact.

    Normalerweise werden die Anwendungsprotokolle zuerst angezeigt, gefolgt von den Webserverprotokollen.The application logs generally appear first, followed by the web server logs. Möglicherweise müssen Sie kurz warten, bis die Protokolle angezeigt werden.You might have to wait a while for the logs to appear.

    Webserverprotokolle im Ausgabefenster

Bei der ersten Aktivierung der Webserverprotokolle in Visual Studio schreibt Azure die Protokolle standardmäßig in das Dateisystem.By default, when you first enable web server logs by using Visual Studio, Azure writes the logs to the file system. Alternativ können Sie im Azure-Portal angeben, dass die Webserverprotokolle in einen Blobcontainer in einem Speicherkonto geschrieben werden sollen.As an alternative, you can use the Azure portal to specify that web server logs should be written to a blob container in a storage account.

Wenn Sie die Webserverprotokollierung für ein Azure-Speicherkonto im Portal aktivieren und die Protokollierung anschließend in Visual Studio deaktivieren, werden die Speicherkontoeinstellungen bei der nächsten Aktivierung wiederhergestellt.If you use the portal to enable web server logging to an Azure storage account, and then disable logging in Visual Studio, when you re-enable logging in Visual Studio your storage account settings are restored.

Anzeigen detaillierter FehlermeldungsprotokolleView detailed error message logs

Die detaillierten Fehlerprotokolle liefern zusätzliche Informationen über HTTP-Anforderungen, die zu einer Fehlerantwort geführt haben (400 oder höher).Detailed error logs provide some additional information about HTTP requests that result in error response codes (400 or above). Sie müssen diese Protokolle für die App aktivieren und Visual Studio mitteilen, dass Sie sie überwachen möchten, um sie im Ausgabefenster anzeigen zu können.In order to see them in the Output window, you have to enable them for the app and tell Visual Studio that you want to monitor them.

  1. Ändern Sie auf der Registerkarte Azure Web App Configuration (Azure-Web-App-Konfiguration), die Sie im Server-Explorer geöffnet haben, die Option Detaillierte Fehlermeldungen in Ein, und klicken Sie dann auf Speichern.In the Azure Web App Configuration tab that you opened from Server Explorer, change Detailed Error Messages to On, and then click Save.

    Aktivieren der detaillierten Fehlermeldungen

  2. Klicken Sie im Ausgabefenster auf die Schaltfläche Geben Sie an, welche Microsoft Azure-Protokolle überwacht werden sollen.In the Output Window, click the Specify which Microsoft Azure logs to monitor button.

  3. Klicken Sie im Dialogfeld Microsoft Azure-Protokollierungsoptionen auf Alle Protokolle und dann auf OK.In the Microsoft Azure Logging Options dialog box, click All logs, and then click OK.

    Überwachen aller Protokolle

  4. Fügen Sie in der Adressleiste Ihres Browserfensters ein zusätzliches Zeichen an die URL an, um einen 404-Fehler zu verursachen (z. B. http://localhost:53370/Home/Contactx), und drücken Sie die EINGABETASTE.In the address bar of the browser window, add an extra character to the URL to cause a 404 error (for example, http://localhost:53370/Home/Contactx), and press Enter.

    Nach wenigen Sekunden wird das detaillierte Fehlerprotokoll im Ausgabefenster von Visual Studio angezeigt.After several seconds, the detailed error log appears in the Visual Studio Output window.

    Detailliertes Fehlerprotokoll – Ausgabefenster

    Klicken Sie bei gedrückter STRG-Taste auf den Link, um das formatierte Protokoll im Browser anzuzeigen:Control+click the link to see the log output formatted in a browser:

    Detailliertes Fehlerprotokoll – Browserfenster

Herunterladen von DateisystemprotokollenDownload file system logs

Alle Protokolle, die Sie im Ausgabefenster überwachen können, lassen sich auch als .zip -Datei herunterladen.Any logs that you can monitor in the Output window can also be downloaded as a .zip file.

  1. Klicken Sie im Ausgabefenster auf Streamingprotokolle herunterladen.In the Output window, click Download Streaming Logs.

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

    Der Datei-Explorer öffnet Ihren Downloads -Ordner, und die heruntergeladene Datei ist ausgewählt.File Explorer opens to your Downloads folder with the downloaded file selected.

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

  2. Wenn Sie die .zip -Datei extrahieren, sehen Sie die folgende Ordnerstruktur:Extract the .zip file, and you see the following folder structure:

    Screenshot eines Serverfehlers in der '/'-Anwendung in einem Webbrowser

    • Ablaufverfolgungsprotokolle von Anwendungen befinden sich in TXT-Dateien im Ordner LogFiles\Application.Application tracing logs are in .txt files in the LogFiles\Application folder.

    • Webserverprotokolle befinden sich in LOG-Dateien im Ordner LogFiles\http\RawLogs.Web server logs are in .log files in the LogFiles\http\RawLogs folder. Sie können diese Dateien mit Werkzeugen wie Log Parser anzeigen und bearbeiten.You can use a tool such as Log Parser to view and manipulate these files.

    • Ausführliche Fehlerprotokolle befinden sich in HTML-Dateien im Ordner LogFiles\DetailedErrors.Detailed error message logs are in .html files in the LogFiles\DetailedErrors folder.

      (Der Ordner deployments enthält Dateien der Quellcodeverwaltung und hat nichts mit der Veröffentlichung in Visual Studio zu tun.(The deployments folder is for files created by source control publishing; it doesn't have anything related to Visual Studio publishing. Der Ordner Git enthält Ablaufverfolgungsprotokolle für die Quellcodeverwaltung und den Protokollstreamingdienst.)The Git folder is for traces related to source control publishing and the log file streaming service.)

Anzeigen von fehlgeschlagenen AnforderungsablaufverfolgungsprotokollenView failed request tracing logs

Anhand der Protokolle für fehlgeschlagene Anforderungen können Sie im Detail herausfinden, wie IIS HTTP-Anforderungen bearbeitet, z. B. in Szenarien mit URL-Neuschreibung oder bei Authentifizierungsproblemen.Failed request tracing logs are useful when you need to understand the details of how IIS is handling an HTTP request, in scenarios such as URL rewriting or authentication problems.

App Service-Apps verwenden die gleiche Funktion zum Verfolgen fehlerhafter Anforderungen, die in IIS 7.0 und höher verfügbar ist.App Service apps use the same failed request tracing functionality that has been available with IIS 7.0 and later. Sie haben jedoch keinen Zugriff auf die IIS-Einstellungen, in denen festgelegt wird, welche Fehler protokolliert werden.You don't have access to the IIS settings that configure which errors get logged, however. Wenn Sie die Verfolgung fehlgeschlagener Anforderungen aktivieren, werden alle Fehler erfasst.When you enable failed request tracing, all errors are captured.

Sie können die Protokolle für fehlgeschlagene Anforderungen in Visual Studio aktivieren, allerdings lassen sich diese Protokolle nicht in Visual Studio anzeigen.You can enable failed request tracing by using Visual Studio, but you can't view them in Visual Studio. Diese Protokolle liegen in Form von XML-Dateien vor.These logs are XML files. Der Streamingprotokolldienst überwacht nur Dateien, die im Nur-Text-Modus lesbar sind: TXT-, HTML- und LOG-Dateien.The streaming log service only monitors files that are deemed readable in plain text mode: .txt, .html, and .log files.

Sie können die Protokolle für fehlgeschlagene Anforderungen entweder direkt über FTP im Browser anzeigen oder mit einem FTP-Client auf Ihren lokalen Computer herunterladen.You can view failed request tracing logs in a browser directly via FTP or locally after using an FTP tool to download them to your local computer. In diesem Abschnitt werden Sie die Protokolle direkt im Browser anzeigen.In this section, you'll view them in a browser directly.

  1. Ändern Sie auf der Registerkarte Konfiguration im Fenster Azure-Web-App, das Sie über denServer-Explorer geöffnet haben, die Option Ablaufverfolgung für Anforderungsfehler in Ein, und klicken Sie dann auf Speichern.In the Configuration tab of the Azure Web App window that you opened from Server Explorer, change Failed Request Tracing to On, and then click Save.

    Aktivieren der Verfolgung fehlgeschlagener Anforderungen

  2. Fügen Sie der URL der App in der Adressleiste ein zusätzliches Zeichen hinzu, und drücken Sie die EINGABETASTE, um einen 404-Fehler auszulösen.In the address bar of the browser window that shows the app, add an extra character to the URL and click Enter to cause a 404 error.

    Daraufhin wird ein Protokoll für die fehlgeschlagene Anforderung erstellt. In den folgenden Schritten lernen Sie, wie Sie dieses Protokoll anzeigen oder herunterladen können.This causes a failed request tracing log to be created, and the following steps show how to view or download the log.

  3. Klicken Sie in Visual Studio auf der Registerkarte Konfiguration im Fenster Azure-Web-App auf Im Verwaltungsportal öffnen.In Visual Studio, in the Configuration tab of the Azure Web App window, click Open in Management Portal.

  4. Klicken Sie im Azure-Portal auf der Seite Einstellungen für Ihre App auf Anmeldeinformationen für die Bereitstellung, und geben Sie einen neuen Benutzernamen und ein neues Kennwort ein.In the Azure portal Settings page for your app, click Deployment credentials, and then enter a new user name and password.

    Neuer FTP-Benutzername und neues Passwort

    Hinweis

    Wenn Sie sich anmelden, müssen Sie den vollständigen Benutzernamen mit dem vorangestellten Namen der App verwenden.When you log in, you have to use the full user name with the app name prefixed to it. Angenommen, Sie geben „meine-id" als einen Benutzernamen ein, und die Website ist „meinbeispiel“, dann melden Sie sich als „meinbeispiel\meine-id“ an.For example, if you enter "myid" as a user name and the site is "myexample", you log in as "myexample\myid".

  5. Öffnen Sie in einem neuen Browserfenster die URL, die auf der Seite Übersicht für die App unter FTP-Hostname bzw. unter FTPS-Hostname angezeigt wird.In a new browser window, go to the URL that is shown under FTP hostname or FTPS hostname in the Overview page for your app.

  6. Melden Sie sich mit den zuvor erstellten FTP-Anmeldeinformationen an (einschließlich des Namens der App als Präfix des Benutzernamens).Sign in using the FTP credentials that you created earlier (including the app name prefix for the user name).

    Daraufhin wird im Browser der Stammordner der App angezeigt.The browser shows the root folder of the app.

  7. Öffnen Sie den Ordner LogFiles .Open the LogFiles folder.

    Öffnen Sie den Ordner LogFiles

  8. Öffnen Sie den Ordner mit dem Namen W3SVC plus nachgestelltem numerischem Wert.Open the folder that is named W3SVC plus a numeric value.

    Öffnen Sie den Ordner W3SVC

    Der Ordner enthält XML-Dateien für sämtliche protokollierten Fehler, nachdem Sie die Protokollierung fehlgeschlagener Anforderungen aktiviert haben, sowie eine XSL-Datei für die XML-Formatierung im Browser.The folder contains XML files for any errors that have been logged after you enabled failed request tracing, and an XSL file that a browser can use to format the XML.

    Ordner W3SVC

  9. Klicken Sie auf die XML-Datei für die fehlgeschlagene Anforderung, deren Ablaufverfolgungsinformationen Sie anzeigen möchten.Click the XML file for the failed request that you want to see tracing information for.

    Die folgende Abbildung zeigt einen Teil der Ablaufverfolgungsinformationen für einen Beispielfehler.The following illustration shows part of the tracing information for a sample error.

    Verfolgung fehlgeschlagener Anforderungen im Browser

Nächste SchritteNext Steps

Sie haben erfahren, wie Visual Studio die Anzeige der Protokolle von App Service-Apps erleichtert.You've seen how Visual Studio makes it easy to view logs created by an App Service app. Die folgenden Abschnitte enthalten Links zu weiteren Ressourcen zu verwandten Themen:The following sections provide links to more resources on related topics:

  • Problembehandlung in App ServiceApp Service troubleshooting
  • Debuggen in Visual StudioDebugging in Visual Studio
  • Remotedebuggen in AzureRemote debugging in Azure
  • Ablaufverfolgung in ASP.NET-AnwendungenTracing in ASP.NET applications
  • Analyse von WebserverprotokollenAnalyzing web server logs
  • Analyse der Ablaufverfolgungsprotokolle mit fehlgeschlagenen AnforderungenAnalyzing failed request tracing logs
  • Debuggen von Cloud-Diensten.Debugging Cloud Services

Problembehandlung in App ServiceApp Service troubleshooting

Weitere Informationen zur Problembehandlung von Apps in Azure App Service finden Sie in den folgenden Ressourcen:For more information about troubleshooting apps in Azure App Service, see the following resources:

Falls Sie spezifische Fragen zur Problembehandlung haben, können Sie diese in einem der folgenden Foren stellen:For help with a specific troubleshooting question, start a thread in one of the following forums:

Debuggen in Visual StudioDebugging in Visual Studio

Weitere Informationen zum Debugmodus in Visual Studio finden Sie unter Debuggen in Visual Studio und unter Debugging Tips with Visual Studio 2010 (Tipps zum Debuggen in Visual Studio 2010).For more information about how to use debug mode in Visual Studio, see Debugging in Visual Studio and Debugging Tips with Visual Studio 2010.

Remotedebuggen in AzureRemote debugging in Azure

Weitere Informationen zum Remotedebuggen für App Service-Apps und WebJobs finden Sie in den folgenden Ressourcen:For more information about remote debugging for App Service apps and WebJobs, see the following resources:

Wenn Ihre App eine Azure-Web-API oder ein Mobile Services-Back-End verwendet und Sie diese Komponenten debuggen möchten, finden Sie weitere Informationen unter Debugging .NET Backend in Visual Studio (Debuggen des .NET Back-Ends in Visual Studio).If your app uses an Azure Web API or Mobile Services back-end and you need to debug that, see Debugging .NET Backend in Visual Studio.

Ablaufverfolgung in ASP.NET-AnwendungenTracing in ASP.NET applications

Momentan sind keine vollständigen und aktuellen Einführungen zur Ablaufverfolgung in ASP.NET im Internet verfügbar.There are no thorough and up-to-date introductions to ASP.NET tracing available on the Internet. Beginnen Sie daher mit den älteren Einführungen für Web Forms, als MVC noch nicht existierte, und ergänzen Sie diese Lektüre mit neueren Blogeinträgen zu speziellen Themen.The best you can do is get started with old introductory materials written for Web Forms because MVC didn't exist yet, and supplement that with newer blog posts that focus on specific issues. Die folgenden Ressourcen bieten gute Einstiegspunkte:Some good places to start are the following resources:

Für die Fehlerprotokollierung können Sie Open-Source-Protokollframeworks wie ELMAH verwenden, anstatt Ihren eigenen Ablaufverfolgungscode zu schreiben.For error logging, an alternative to writing your own tracing code is to use an open-source logging framework such as ELMAH. Weitere Informationen finden Sie in Scott Hanselmans Blogbeiträgen zu ELMAH.For more information, see Scott Hanselman's blog posts about ELMAH.

Darüber hinaus müssen Sie nicht ASP.NET oder die System.Diagnostics-Ablaufverfolgung verwenden, um Streamingprotokolle von Azure abzurufen.Also, you don't need to use ASP.NET or System.Diagnostics tracing to get streaming logs from Azure. Der Streamingprotokolldienst von App Service-Apps ist in der Lage, beliebige TXT-, HTML- oder LOG-Dateien aus dem Ordner LogFiles zu streamen.The App Service app streaming log service streams any .txt, .html, or .log file that it finds in the LogFiles folder. Sie können daher ein eigenes Protokollsystem erstellen, das in das Dateisystem der App schreibt, und Ihre Dateien werden automatisch gestreamt und heruntergeladen.Therefore, you could create your own logging system that writes to the file system of the app, and your file is automatically streamed and downloaded. Dazu müssen Sie nur den Anwendungscode schreiben, der Dateien im Ordner D:\Home\LogFiles erstellt.All you have to do is write application code that creates files in the d:\home\logfiles folder.

Analyse von WebserverprotokollenAnalyzing web server logs

Weitere Informationen zur Analyse von Webserverprotokollen finden Sie in den folgenden Ressourcen:For more information about analyzing web server logs, see the following resources:

Analyse der Ablaufverfolgungsprotokolle mit fehlgeschlagenen AnforderungenAnalyzing failed request tracing logs

Die Microsoft TechNet-Website enthält einen Abschnitt zum Thema Ablaufverfolgung von Anforderungen mit Fehlerrückgabe, der für das Verständnis dieser Protokolle hilfreich ist.The Microsoft TechNet website includes a Using Failed Request Tracing section, which may be helpful for understanding how to use these logs. Diese Dokumentation konzentriert sich jedoch hauptsächlich auf die Ablaufverfolgung fehlerhafter Anforderungen in IIS. Diese Option ist in Azure App Service nicht verfügbar.However, this documentation focuses mainly on configuring failed request tracing in IIS, which you can't do in Azure App Service.