Een ASP.NET-app configureren voor Azure App Service

Notitie

Zie ASP.NET Core app voor ASP.NET Core configureren voor Azure App Service

ASP.NET-apps moeten worden geïmplementeerd in Azure App Service gecompileerde binaire bestanden. Het Visual Studio-publicatieprogramma bouwt de oplossing en implementeert vervolgens de gecompileerde binaire bestanden rechtstreeks, terwijl de implementatie-engine van App Service eerst de codeopslagplaats implementeert en vervolgens de binaire bestanden compileert.

Deze handleiding bevat belangrijke concepten en instructies voor ASP.NET ontwikkelaars. Als u deze zelfstudie nog Azure App Service, volgt u eerst ASP.NET quickstart en ASP.NET met SQL Database zelfstudie.

Ondersteunde .NET Framework runtime-versies

In App Service zijn op Windows instanties al alle ondersteunde .NET Framework geïnstalleerd. Als u de .NET Framework runtime en SDK-versies wilt zien die voor u beschikbaar zijn, gaat u naar en voer u de juiste opdracht uit in de https://<app-name>.scm.azurewebsites.net/DebugConsole browserconsole:

Voor CLR 4-runtimeversies (.NET Framework 4 en hoger):

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

De .NET Framework versie is mogelijk niet onmiddellijk beschikbaar.

Voor CLR 2-runtimeversies (.NET Framework 3.5 en lager):

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

Huidige .NET Framework runtime-versie

Voer de volgende opdracht uit in Cloud Shell:

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

Een waarde van v4.0 betekent dat de meest recente CLR 4-versie (.NET Framework 4.x) wordt gebruikt. Een waarde van v2.0 betekent dat een CLR 2-versie (.NET Framework 3.5) wordt gebruikt.

Een runtime.NET Framework versie instellen

Standaard gebruikt App Service de meest recente ondersteunde .NET Framework-versie om uw app ASP.NET uitvoeren. Als u uw app wilt uitvoeren met .NET Framework 3.5, moet u de volgende opdracht uitvoeren in de Cloud Shell (v2.0 betekent CLR 2):

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

Toegang tot omgevingsvariabelen

In App Service kunt u app-instellingen en verbindingsreeksen buiten uw app-code instellen. Vervolgens kunt u ze in elke klasse openen met behulp van het standaard ASP.NET patroon:

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

Als u een app-instelling met dezelfde naam in App Service en in web.config configureert, heeft App Service waarde voorrang op de web.config waarde. Met de lokaleweb.config kunt u fouten in de app lokaal opsporen, maar met de waarde App Service kunt u de app uitvoeren in een product met productie-instellingen. Verbindingsreeksen werken op dezelfde manier. Op deze manier kunt u uw toepassingsgeheimen buiten uw codeopslagplaats houden en toegang krijgen tot de juiste waarden zonder uw code te wijzigen.

Oplossingen voor meerdere projecten implementeren

Wanneer een Visual Studio meerdere projecten bevat, omvat Visual Studio publicatieproces al het project dat u wilt implementeren. Wanneer u implementeert in de App Service-implementatie-engine, zoals met Git, of met ZIP-implementatie met buildautomatisering ingeschakeld,kiest de App Service-implementatie-engine de eerste website of webtoepassing Project die wordt gevonden als de App Service-app. U kunt opgeven welk project App Service moet gebruiken door de PROJECT app-instelling op te geven. Voer bijvoorbeeld het volgende uit in de Cloud Shell:

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

Pagina Met gedetailleerde uitzonderingen

Wanneer uw ASP.NET-app een uitzondering genereert in het Visual Studio-foutopsporingsvenster, wordt in de browser een gedetailleerde uitzonderingspagina weergegeven, maar in App Service wordt die pagina vervangen door een algemeen foutbericht. Als u de gedetailleerde uitzonderingspagina in App Service wilt weergeven, opent u het Web.configbestand en voegt u het element toe onder het <customErrors mode="Off"/> element <system.web> . Bijvoorbeeld:

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

Ployer uw app opnieuw met de bijgewerkteWeb.config. U ziet nu dezelfde gedetailleerde uitzonderingspagina.

Toegang tot diagnostische logboeken

U kunt diagnostische berichten toevoegen aan uw toepassingscode met behulp van System.Diagnostics.Trace. Bijvoorbeeld:

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

Als u toegang wilt tot de consolelogboeken die worden gegenereerd binnen uw toepassingscode in de App Service, schakelt u diagnostische logboekregistratie in door de volgende opdracht in de Cloud Shell uit te voeren:

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

Mogelijk waarden voor --level zijn: Error, Warning, Info en Verbose. Elk hoger niveau omvat het vorige niveau. Bijvoorbeeld: Error omvat alleen foutberichten en Verbose omvat alle berichten.

Nadat diagnostische logboekregistratie is ingeschakeld, voert u de volgende opdracht uit om de logboekstream te zien:

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

Als u de consolelogboeken niet meteen ziet, probeert u het opnieuw na 30 seconden.

Notitie

U kunt ook de logboekbestanden van de browser inspecteren op https://<app-name>.scm.azurewebsites.net/api/logs/docker.

U kunt op elk gewenst moment Ctrl+C typen om te stoppen met logboekstreaming.

Meer bronnen