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 Visual Studio-Veröffentlichungstool erstellt die Projektmappe und stellt dann die kompilierten Binärdateien direkt bereit. Das App Service-Bereitstellungsmodul stellt zuerst das Code-Repository bereit und kompiliert dann die Binärdateien.

Dieser Leitfaden enthält wichtige Konzepte und Anweisungen für ASP.NET-Entwickler. Wenn dieser Artikel Ihre erste Erfahrung mit Azure App Service ist, sollten Sie zuerst eine ASP.NET Web-App bereitstellen und eine ASP.NET-App mit Azure SQL-Datenbank in Azure bereitstellen.

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 sind von der Aufrechterhaltungsorganisation veraltet oder weisen erhebliche Sicherheitsrisiken auf. 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, eine ARM-Vorlage oder Bicep. Mit diesen Bereitstellungsalternativen können Sie veraltete Laufzeiten erstellen, die aus dem Portal entfernt werden, 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 Wert "App Service" können Sie die App 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 die Auswahl 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 den folgenden Befehl 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 generiert, zeigt der Browser eine detaillierte Ausnahmeseite an. Eine generische Fehlermeldung ersetzt diese Seite in App Service. Um die detaillierte Ausnahmeseite in App Service anzuzeigen, öffnen Sie die web.config Datei, und fügen Sie das <customErrors mode="Off"/> Element unter dem <system.web> Element hinzu. Beispiel:

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

Stellen Sie Ihre App mit dem aktualisierten web.config erneut bereit. Sie sollten jetzt dieselbe detaillierte Ausnahmeseite sehen.

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.