Share 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. 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. De Implementatie-engine van App Service implementeert eerst de codeopslagplaats en compileert vervolgens de binaire bestanden.

Deze handleiding bevat belangrijke concepten en instructies voor ASP.NET ontwikkelaars. Als dit artikel uw eerste ervaring is met Azure App Service, volgt u Eerst een ASP.NET-web-app implementeren en een ASP.NET-app met Azure SQL-database implementeren in Azure .

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 uw app in Azure Portal. Selecteer Ontwikkelhulpprogramma's>Geavanceerde hulpprogramma's. Selecteer Go. Selecteer in Kudu debug-console voor CMD of PowerShell. Voer de juiste opdracht 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 meest recente 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"

Als de runtime die uw toepassing vereist niet wordt ondersteund, kunt u deze implementeren met een aangepaste container.

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

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.

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

Wat gebeurt er met verouderde runtimes in App Service?

Verouderde runtimes worden afgeschaft door de onderhoudende organisatie of hebben aanzienlijke beveiligingsproblemen. Dienovereenkomstig worden ze verwijderd uit het maken en configureren van pagina's in de portal. Wanneer een verouderde runtime is verborgen in de portal, blijft elke app die die runtime gebruikt, nog steeds actief.

Als u een app wilt maken met een verouderde runtimeversie die niet meer wordt weergegeven in de portal, gebruikt u de Azure CLI, een ARM-sjabloon of Bicep. Met deze implementatiealternatieven kunt u afgeschafte runtimes maken die uit de portal worden verwijderd, maar die nog steeds worden ondersteund.

Als een runtime volledig is verwijderd uit het App Service-platform, ontvangt de eigenaar van uw Azure-abonnement een e-mailmelding voordat deze wordt verwijderd.

Toegang tot omgevingsvariabelen

In App Service kunt u app-instellingen en verbindingsreeksen instellen buiten uw app-code. 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.configconfigureert, 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. 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 Beveiligde connectiviteit met Azure-services en -databases vanuit Azure App Service voor meer informatie.

Oplossingen voor meerdere projecten implementeren

Wanneer een Visual Studio-oplossing meerdere projecten bevat, omvat het publicatieproces van Visual Studio 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 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 de volgende opdracht 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. Een algemeen foutbericht vervangt die pagina in App Service. 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. 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 krijgen tot de consolelogboeken die zijn gegenereerd vanuit uw toepassingscode in App Service, schakelt u diagnostische logboekregistratie in door de volgende opdracht uit te voeren in Cloud Shell:

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

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

Nadat u diagnostische logboekregistratie hebt 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 consolelogboeken niet onmiddellijk worden weergegeven, controleert u het na 30 seconden opnieuw.

Als u wilt stoppen met logboekstreaming, selecteert u Ctrl+C.