Konfigurieren einer ASP.NET-App für Azure App Service

Hinweis

ASP.NET Core betreffende Informationen finden Sie unter Konfigurieren einer ASP.NET Core-App für Azure App Service. Wenn Ihre ASP.NET-App in einem benutzerdefinierten Windows- oder Linux-Container ausgeführt wird, finden Sie weitere Informationen unter Konfigurieren eines benutzerdefinierten Containers für Azure App Service.

ASP.NET-Apps müssen in Azure App Service als kompilierte Binärdateien bereitgestellt werden. Das Veröffentlichungstool für Visual Studio erstellt die Projektmappe und stellt dann die kompilierten Binärdateien direkt bereit, während die App Service-Bereitstellungs-Engine zuerst das Coderepository und dann die Binärdateien kompiliert.

Dieser Leitfaden enthält wichtige Konzepte und Anweisungen für ASP.NET-Entwickler. Wenn Sie Azure App Service noch nie verwendet haben, folgen Sie zunächst dem ASP.NET-Schnellstart und dem Tutorial zu ASP.NET mit SQL-Datenbank.

Anzeigen unterstützter .NET Framework-Runtimeversionen

In App Service sind auf den Windows-Instanzen bereits alle unterstützten .NET Framework-Versionen installiert. Navigieren Sie zu https://<app-name>.scm.azurewebsites.net/DebugConsole, und führen Sie den entsprechenden Befehl in der browserbasierten Konsole aus, um die für Sie verfügbaren .NET Framework-Runtime- und -SDK-Versionen anzuzeigen:

Für CLR 4-Runtimeversionen (.NET Framework 4 und höher):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"

Die neueste .NET Framework-Version ist möglicherweise nicht sofort verfügbar.

Für CLR 2-Runtimeversionen (.NET Framework 3.5 und früher):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"

Anzeigen der aktuellen .NET Framework-Runtimeversion

Führen Sie in der Cloud Shell-Instanz folgenden Befehl aus:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion

Der Wert v4.0 bedeutet, dass die neueste Version von CLR 4 (.NET Framework 4.x) verwendet wird. Der Wert v2.0 bedeutet, dass eine CLR 2-Version (.NET Framework 3.5) verwendet wird.

Festlegen der .NET Framework-Runtimeversion

Standardmäßig verwendet App Service die neueste unterstützte .NET Framework-Version, um Ihre ASP.NET-App auszuführen. Um Ihre App stattdessen mit .NET Framework 3.5 auszuführen, führen Sie den folgenden Befehl in der Cloud Shell aus (v2.0 steht für CLR 2):

az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0

Zugreifen auf Umgebungsvariablen

In App Service können Sie App-Einstellungen und Verbindungszeichenfolgen außerhalb des App-Codes festlegen. Anschließend können Sie unter Verwendung des ASP.NET-Standardmusters in einer beliebigen Klasse darauf zugreifen:

using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}

Wenn Sie eine App-Einstellung mit demselben Namen in App Service und in web.config konfigurieren, hat der App Service-Wert Vorrang vor dem web.config-Wert. Mit dem lokalen web.config-Wert können Sie die App lokal debuggen, mit dem App Service-Wert können Sie die App hingegen im Produkt mit Produktionseinstellungen ausführen. Verbindungszeichenfolgen funktionieren auf dieselbe Weise. Auf diese Weise können Sie Ihre Anwendungsgeheimnisse außerhalb Ihres Coderepositorys aufbewahren und auf die entsprechenden Werte zugreifen, ohne Ihren Code zu ändern.

Bereitstellen von Projektmappen mit mehreren Projekten

Wenn eine Visual Studio-Projektmappe mehrere Projekte enthält, umfasst der Veröffentlichungsprozess von Visual Studio bereits das Auswählen des bereitzustellenden Projekts. Wenn Sie für die App Service-Bereitstellungs-Engine bereitstellen, z. B. mit Git oder einer ZIP-Bereitstellung mit aktivierter Buildautomatisierung , wählt die App Service-Bereitstellungs-Engine das erste Website- oder Webanwendungsprojekt aus, das als App Service-App gefunden wird. Sie können angeben, welches Projekt App Service verwenden soll, indem Sie die App-Einstellung PROJECT angeben. Führen Sie beispielsweise Folgendes in der Cloud Shell aus:

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"

Abrufen einer detaillierten Ausnahmenseite

Wenn Ihre ASP. NET-App eine Ausnahme im Visual Studio-Debugger erzeugt, zeigt der Browser eine detaillierte Ausnahmeseite an, in App Service wird diese Seite hingegen durch eine allgemeine Fehlermeldung ersetzt. Öffnen Sie zum Anzeigen der detaillierten Ausnahmeseite in App Service die Datei Web.config, und fügen Sie das Element <customErrors mode="Off"/> unter dem Element <system.web> hinzu. Beispiel:

<system.web>
    <customErrors mode="Off"/>
</system.web>

Stellen Sie Ihre App mit der aktualisierten Datei Web.config erneut bereit. Nun sollte dieselbe detaillierte Ausnahmeseite angezeigt werden.

Zugreifen auf Diagnoseprotokolle

Mit System.Diagnostics.Trace können Sie Diagnosemeldungen in Ihrem Anwendungscode hinzufügen. Beispiel:

Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace

Aktivieren Sie die Diagnoseprotokollierung, indem Sie den folgenden Befehl in Cloud Shellausführen, um auf die Konsolenprotokolle zuzugreifen, die innerhalb des Anwendungscodes in App Service generiert wurden:

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

Mögliche Werte für --level sind Error, WarningInfo oder Verbose. Jede nachfolgende Ebene enthält die vorherige Ebene. Beispiel: Error enthält nur Fehlermeldungen, und Verbose enthält alle Meldungen.

Führen Sie den folgenden Befehl aus, um den Protokolldatenstrom anzuzeigen, nachdem die Diagnoseprotokollierung aktiviert wurde:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

Falls Sie nicht sofort Konsolenprotokolle sehen, können Sie es nach 30 Sekunden noch einmal versuchen.

Hinweis

Sie können die Protokolldateien auch im Browser unter https://<app-name>.scm.azurewebsites.net/api/logs/docker untersuchen.

Um das Protokollstreaming jederzeit zu beenden, geben Sie Ctrl+C ein.

Weitere Ressourcen