Freigeben über


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. Um die ihnen zur Verfügung stehenden .NET Framework-Laufzeit- und SDK-Versionen anzuzeigen, wechseln Sie im Azure-Portal zu Ihrer App. Wählen Sie Entwicklungstools>Erweiterte Tools aus. Klicken Sie auf Starten. Wählen Sie in Kudu die Debugkonsole für CMD oder PowerShell aus. Führen Sie den entsprechenden Befehl in der browserbasierten Konsole aus:

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"

Wenn die erforderliche Laufzeit Ihrer Anwendung nicht unterstützt wird, können Sie sie mit einem benutzerdefinierten Container bereitstellen.

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

Was geschieht mit veralteten Laufzeiten in App Service?

Veraltete Laufzeiten werden von der Aufrechterhaltungsorganisation nicht mehr unterstützt oder festgestellt, dass erhebliche Sicherheitsrisiken auftreten. Dementsprechend werden sie aus dem Erstellen und Konfigurieren von Seiten im Portal entfernt. Wenn eine veraltete Laufzeit im Portal ausgeblendet ist, wird jede App, die diese Laufzeit verwendet, weiterhin ausgeführt.

Wenn Sie eine App mit einer veralteten Laufzeitversion erstellen möchten, die nicht mehr im Portal angezeigt wird, verwenden Sie die Azure CLI-, ARM-Vorlage oder Bicep. Mit diesen Bereitstellungsalternativen können Sie veraltete Laufzeiten erstellen, die im Portal entfernt wurden, aber weiterhin unterstützt werden.

Wenn eine Laufzeit vollständig von der App Service-Plattform entfernt wird, erhält Ihr Azure-Abonnementbesitzer vor dem Entfernen eine E-Mail-Benachrichtigung.

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.

Hinweis

Erwägen Sie sicherere Konnektivitätsoptionen, für die überhaupt keine Verbindungsgeheimnisse erforderlich sind. Weitere Informationen finden Sie unter Sichere Konnektivität mit Azure-Diensten und -Datenbanken aus Azure App Service.

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

Um auf die Konsolenprotokolle zuzugreifen, die aus Ihrem Anwendungscode in App Service generiert wurden, aktivieren Sie die Diagnoseprotokollierung, indem Sie den folgenden Befehl in Cloud Shell ausführen:

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, Warning, Info und Verbose. Jede nachfolgende Ebene enthält die vorherige Ebene. Enthält z. B. Error nur Fehlermeldungen. Verbose enthält alle Nachrichten.

Führen Sie nach dem Aktivieren der Diagnoseprotokollierung den folgenden Befehl aus, um den Protokolldatenstrom anzuzeigen:

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

Wenn Konsolenprotokolle nicht sofort angezeigt werden, überprüfen Sie es in 30 Sekunden erneut.

Wenn Sie das Protokollstreaming jederzeit beenden möchten, wählen Sie STRG+C aus.

Weitere Ressourcen