Dela via


Konfigurera en ASP.NET app för Azure App Service

Anmärkning

ASP.NET Core finns i Konfigurera en ASP.NET Core-app för Azure App Service. Om din ASP.NET app körs i en anpassad Windows- eller Linux-container kan du läsa Konfigurera en anpassad container för Azure App Service.

ASP.NET appar måste distribueras till Azure App Service som kompilerade binärfiler. Visual Studio-publiceringsverktyget skapar lösningen och distribuerar sedan de kompilerade binärfilerna direkt. App Service-distributionsmotorn distribuerar först kodlagringsplatsen och kompilerar sedan binärfilerna.

Den här guiden innehåller viktiga begrepp och instruktioner för ASP.NET utvecklare. Om den här artikeln är din första upplevelse med Azure App Service följer du Distribuera en ASP.NET-webbapp och Distribuera en ASP.NET app med Azure SQL Database till Azure först.

Visa .NET Framework-körningsversioner som stöds

I App Service har Windows-instanserna redan alla .NET Framework-versioner som stöds installerade. Om du vill visa de .NET Framework-körnings- och SDK-versioner som är tillgängliga för dig går du till din app i Azure-portalen. Välj Utvecklingsverktyg>Avancerade verktyg. Välj . I Kudu väljer du Felsökningskonsol för CMD eller PowerShell. Kör lämpligt kommando i den webbläsarbaserade konsolen:

För CLR 4-körningsversioner (.NET Framework 4 och senare):

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

Den senaste .NET Framework-versionen kanske inte är omedelbart tillgänglig.

För CLR 2-körningsversioner (.NET Framework 3.5 och senare):

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

Om den körning som programmet kräver inte stöds kan du distribuera den med en anpassad container.

Visa aktuell .NET Framework-körningsversion

Kör följande kommando i Cloud Shell:

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

v4.0 Värdet innebär att den senaste CLR 4-versionen (.NET Framework 4.x) används. v2.0 Värdet betyder att en CLR 2-version (.NET Framework 3.5) används.

Ange .NET Framework-körningsversion

Som standard använder App Service den senaste .NET Framework-versionen som stöds för att köra din ASP.NET app. Kör följande kommando i Cloud Shell (v2.0 betyder CLR 2) om du vill köra appen med .NET Framework 3.5 i stället:

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

Vad händer med inaktuella körmiljöer i App Service?

Inaktuella körningar är inaktuella av organisationens underhåll eller har betydande sårbarheter. Därför tas de bort från skapa och konfigurera sidor i portalen. När en föråldrad runtime är dold från portalen fortsätter alla appar som fortfarande använder den att köra.

Om du vill skapa en app med en inaktuell körningsversion som inte längre visas på portalen använder du Azure CLI, en ARM-mall eller Bicep. Med de här distributionsalternativen kan du skapa inaktuella körningar som tas bort från portalen men som fortfarande stöds.

Om en runtime tas bort helt från App Service-plattformen får ägaren till din Azure-prenumeration ett e-postmeddelande innan borttagningen.

Få åtkomst till miljövariabler

I App Service kan du ange appinställningar och anslutningssträngar utanför din appkod. Sedan kan du komma åt dem i valfri klass med hjälp av standardmönstret ASP.NET:

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

Om du konfigurerar en appinställning med samma namn i App Service och i web.confighar App Service-värdet företräde framför detweb.config värdet. Med det lokala web.config-värdet kan du felsöka appen lokalt. Med App Service-värdet kan du köra appen i produkten med produktionsinställningar. Anslutningssträngar fungerar på samma sätt. På så sätt kan du hålla dina programhemligheter utanför kodlagringsplatsen och komma åt lämpliga värden utan att ändra koden.

Anmärkning

Överväg säkrare anslutningsalternativ som inte kräver anslutningshemligheter alls. Mer information finns i Säker anslutning till Azure-tjänster och -databaser från Azure App Service.

Distribuera lösningar för flera projekt

När en Visual Studio-lösning innehåller flera projekt inkluderar Visual Studio-publiceringsprocessen att välja det projekt som ska distribueras. När du distribuerar till App Service-distributionsmotorn, till exempel med Git eller med ZIP-distribution med versionsautomation aktiverad, väljer App Service-distributionsmotorn den första webbplatsen eller webbprogramprojektet som hittas som App Service-appen. Du kan ange vilket projekt App Service ska använda genom att ange appinställningen PROJECT . Kör till exempel följande kommando i Cloud Shell:

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

Hämta sida med detaljerade undantag

När din ASP.NET app genererar ett undantag i Visual Studio-felsökningsprogrammet visar webbläsaren en detaljerad undantagssida. Ett allmänt felmeddelande ersätter sidan i App Service. Om du vill visa den detaljerade undantagssidan i App Service öppnar du filenweb.config och lägger till elementet <customErrors mode="Off"/> under elementet <system.web> . Till exempel:

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

Distribuera om din app med den uppdaterade web.config. Nu bör du se samma sida med detaljerade undantag.

Få åtkomst till diagnostikloggar

Du kan lägga till diagnostikmeddelanden i programkoden med hjälp av System.Diagnostics.Trace. Till exempel:

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

Om du vill komma åt konsolloggarna som genereras inifrån programkoden i App Service aktiverar du diagnostikloggning genom att köra följande kommando i Cloud Shell:

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

Möjliga värden för --level är Error, Warning, Infooch Verbose. Varje efterföljande nivå omfattar den föregående nivån. Till exempel innehåller Error endast felmeddelanden. Verbose innehåller alla meddelanden.

När du har aktiverat diagnostikloggning kör du följande kommando för att se loggströmmen:

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

Om konsolloggarna inte visas omedelbart kontrollerar du igen om 30 sekunder.

Om du vill stoppa loggströmningen när som helst väljer du Ctrl+C.