Konfigurera en ASP.NET-app för Azure App Service
Kommentar
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öljer du först ASP.NET snabbstart och ASP.NET med SQL Database-självstudien .
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 https://<app-name>.scm.azurewebsites.net/DebugConsole
och 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"
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
Få åtkomst till miljövariabler
I App Service kan du ange appinställningar och anslutningssträng 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 web.config har App Service-värdet företräde framför värdet web.config. Med det lokala värdet web.config 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.
Kommentar
Ö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 filen Web.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 detaljerade undantagssida.
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 i din programkod i App Service aktiverar du diagnostisk loggning 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
, Info
och Verbose
. Varje efterföljande nivå omfattar den föregående nivån. Exempel: Error
omfattar endast felmeddelanden och Verbose
omfattar alla meddelanden.
När diagnostisk loggning har aktiverats kör du följande kommando för att visa loggströmmen:
az webapp log tail --resource-group <resource-group-name> --name <app-name>
Om du inte ser konsolloggarna omedelbart kan du titta efter igen efter 30 sekunder.
Kommentar
Du kan även granska loggfilerna från din webbläsare via https://<app-name>.scm.azurewebsites.net/api/logs/docker
.
Skriv Ctrl
+C
när som helst för att stoppa loggströmningen.