Delen via


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 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 quickstart ASP.NET en ASP.NET met sql Database.

Ondersteunde .NET Framework-runtimeversies weergeven

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

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

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

De nieuwste versie van .NET Framework is mogelijk niet direct beschikbaar.

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

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

Huidige runtimeversie van .NET Framework weergeven

Voer de volgende opdracht uit in Cloud Shell:

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

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

Runtimeversie van .NET Framework 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 in plaats daarvan de volgende opdracht uit in Cloud Shell (v2.0 geeft CLR 2 aan):

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 verbindingsreeks s 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 in App Service en in web.config configureert, heeft de App Service-waarde voorrang op de web.config-waarde . Met de lokale web.config-waarde kunt u lokaal fouten opsporen in de app, maar met de App Service-waarde 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 bewaren en toegang krijgen tot de juiste waarden zonder uw code te wijzigen.

Notitie

Overweeg veiligere connectiviteitsopties die helemaal geen verbindingsgeheimen vereisen. Zie Secure connectivity to Azure services and databases from Azure-app Service (Beveiligde connectiviteit met Azure-services en -databases) voor meer informatie.

Oplossingen voor meerdere projecten implementeren

Wanneer een Visual Studio-oplossing meerdere projecten bevat, omvat het publicatieproces van Visual Studio al het te implementeren project. Wanneer u implementeert in de App Service-implementatie-engine, zoals met Git of met ZIP-implementatie waarvoor buildautomatisering is 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 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 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 bestand Web.config en voegt u het <customErrors mode="Off"/> element toe onder het <system.web> element. Voorbeeld:

<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 in uw toepassingscode met behulp van System.Diagnostics.Trace. Voorbeeld:

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 resources