Een ASP.NET-app configureren voor Azure App Service

Notitie

Zie Een ASP.NET Core-app configureren voor Azure App Service voor ASP.NET Core. Als uw ASP.NET-app wordt uitgevoerd in een aangepaste Windows- of Linux-container, raadpleegt u Een aangepaste container configureren voor Azure App Service.

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

Deze handleiding bevat belangrijke concepten en instructies voor ASP.NET ontwikkelaars. Als u Azure App Service nog nooit hebt gebruikt, volgt u eerst de snelstartgids voor ASP.NET en ASP.NET met SQL Database zelfstudie.

Ondersteunde .NET Framework runtimeversies weergeven

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

Voor RUNTIME-versies van CLR 4 (.NET Framework 4 en hoger):

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

De meest recente .NET Framework-versie is mogelijk niet onmiddellijk beschikbaar.

Voor RUNTIME-versies van CLR 2 (.NET Framework 3.5 en lager):

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

Huidige runtimeversie van .NET Framework weergeven

Voer de volgende opdracht uit in de 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 er een CLR 2-versie (.NET Framework 3.5) wordt gebruikt.

.NET Framework runtimeversie instellen

Standaard gebruikt App Service de meest recente ondersteunde .NET Framework-versie om uw ASP.NET-app uit te voeren. Als u uw app wilt uitvoeren met .NET Framework 3.5, voert u de volgende opdracht uit 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 standaardpatroon ASP.NET:

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 configureert in App Service en in web.config, heeft de App Service-waarde voorrang op de web.config waarde. Met de lokale web.config-waarde kunt u lokaal fouten in de app opsporen, maar met de waarde App Service kunt u de app uitvoeren in het 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-oplossing meerdere projecten bevat, omvat het publicatieproces van Visual Studio al het selecteren van 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 het webtoepassingsproject dat 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"

Gedetailleerde uitzonderingenpagina ophalen

Wanneer uw ASP.NET-app een uitzondering genereert in het foutopsporingsprogramma van Visual Studio, 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 bestandWeb.config en voegt u het <customErrors mode="Off"/> element toe onder het <system.web> element. Bijvoorbeeld:

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

Implementeer uw app opnieuw met de bijgewerkte Web.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