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, medan App Service-distributionsmotorn distribuerar kodlagringsplatsen först och sedan kompilerar binärfilerna.

Den här guiden innehåller viktiga begrepp och instruktioner för ASP.NET utvecklare. Om du aldrig har använt Azure App Service, följ först ASP.NET snabbstart och ASP.NET med SQL Database.

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örningsmiljöer avvecklas av den underhållande organisationen eller har visat sig ha betydande säkerhetsrisker. 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, ARM-mallen eller Bicep. Med de här distributionsalternativen kan du skapa inaktuella körmiljöer som har tagits bort i 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, men 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 innehåller Visual Studio-publiceringsprocessen redan 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 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, men i App Service ersätts den sidan av ett allmänt felmeddelande. 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>

Återimplementera din app med den uppdaterade Web.config. Nu bör du se samma detaljerade exceptionssida.

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.

Fler resurser