Distribuera ASP.NET Core-appar till Azure App Service
Obs
Det här är inte den senaste versionen av den här artikeln. För att se den aktuella versionen, se .NET 9-versionen av den här artikeln.
Varning
Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i .NET och .NET Core Support Policy. Den aktuella versionen finns i den .NET 9-versionen av den här artikeln.
Viktig
Den här informationen gäller en förhandsversionsprodukt som kan ändras avsevärt innan den släpps kommersiellt. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, med avseende på den information som tillhandahålls här.
För den nuvarande versionen, se version av .NET 9 i den här artikeln.
Azure App Service är en Plattformstjänst för molnbaserad databehandling i Microsoft för att vara värd för webbappar, inklusive ASP.NET Core.
Mönster för företagswebbappar
Vägledning om hur du skapar en tillförlitlig, säker, högpresterande, testbar och skalbar ASP.NET Core-app finns i Enterprise-webbappmönster. En komplett exempelwebbapp av produktionskvalitet som implementerar mönstren är tillgänglig.
Användbara resurser
App Service-dokumentation är hem för dokumentation om Azure Apps, självstudier, exempel, hjälpguider och resurser. Två viktiga handledningar som handlar om att vara värd för ASP.NET Core-appar är:
Skapa en ASP.NET Core-webbapp i Azure
Använd Visual Studio för att skapa och distribuera en ASP.NET Core-webbapp till Azure App Service i Windows.
Skapa en ASP.NET Core-app i App Service på Linux
Använd kommandoraden för att skapa och distribuera en ASP.NET Core-webbapp till Azure App Service i Linux.
Se ASP.NET Core på App Service-instrumentpanelen för den version av ASP.NET Core som är tillgänglig i Azure App Service.
Prenumerera på App Service-meddelanden lagringsplats och övervaka problemen. App Service-teamet publicerar regelbundet meddelanden och scenarier som anländer till App Service.
Följande artiklar finns i ASP.NET Core-dokumentation:
Publicera en ASP.NET Core-app till Azure med Visual Studio
Lär dig hur du publicerar en ASP.NET Core-app till Azure App Service med hjälp av Visual Studio.
Skapa din första pipeline
Konfigurera en CI-version för en ASP.NET Core-app och skapa sedan en kontinuerlig distributionsversion till Azure App Service.
sandbox-miljön i Azure Web App
Upptäck de körningsbegränsningar för Azure App Service som tillämpas av Azure Apps-plattformen.
Felsöka och debugga ASP.NET Core-projekt
Förstå och felsöka varningar och fel med ASP.NET Core-projekt.
Programkonfiguration
Plattform
Plattformsarkitekturen (x86/x64) för en App Services-app anges i appens inställningar i Azure-portalen för appar som finns på en A-serieberäkning (Basic) eller högre värdnivå. Bekräfta att appens publiceringsinställningar (till exempel i Visual Studio publicera profil (.pubxml)) matchar inställningen i appens tjänstkonfiguration i Azure-portalen.
ASP.NET Core-appar kan publiceras beroende av ramverk eftersom körtiderna för 64-bitarsappar (x64) och 32-bitarsappar (x86) är tillgängliga på Azure App Service. Den .NET Core SDK- som är tillgänglig på App Service är 32-bitars, men du kan distribuera 64-bitars-appar som skapats lokalt med hjälp av Kudu-konsolen eller publiceringsprocessen i Visual Studio. Mer information finns i avsnittet Publicera och distribuera appen.
För appar med interna beroenden finns körmiljöer för 32-bitarsappar (x86) i Azure App Service. Den .NET Core SDK- som är tillgänglig i App Service är 32-bitars.
Mer information om .NET Core-ramverkskomponenter och distributionsmetoder, till exempel information om .NET Core-körningen och .NET Core SDK, finns i Om .NET Core: Sammansättning.
Paket
Inkludera följande NuGet-paket för att tillhandahålla automatiska loggningsfunktioner för appar som distribueras till Azure App Service:
-
Microsoft.AspNetCore.AzureAppServices.HostingStartup använder IHostingStartup- för att tillhandahålla ASP.NET Core-loggningsintegrering med Azure App Service. De tillagda loggningsfunktionerna tillhandahålls av
Microsoft.AspNetCore.AzureAppServicesIntegration
-paketet. -
Microsoft.AspNetCore.AzureAppServicesIntegration kör AddAzureWebAppDiagnostics för att lägga till Azure App Service-diagnostikloggningsproviders i
Microsoft.Extensions.Logging.AzureAppServices
-paketet. - Microsoft.Extensions.Logging.AzureAppServices tillhandahåller loggimplementeringar för att stödja Azure App Service-diagnostikloggar och funktioner för loggströmning.
Föregående paket måste uttryckligen refereras till i appens projektfil.
Åsidosätt appkonfiguration med hjälp av Azure-portalen
Med appinställningar i Azure Portal kan du ange miljövariabler för appen. Miljövariabler kan användas av konfigurationsprovidern för miljövariabler .
När en appinställning skapas eller ändras i Azure-portalen och knappen Spara har valts startas Azure-appen om. Miljövariabeln är tillgänglig för appen när tjänsten har startats om.
Miljövariabler läses in i appens konfiguration när CreateBuilder- anropas för att skapa värden. Mer information finns i miljövariablernas konfigurationsprovider .
Med appinställningar i Azure Portal kan du ange miljövariabler för appen. Miljövariabler kan hanteras av konfigurationsprovidern för miljövariabler .
När en appinställning skapas eller ändras i Azure-portalen och knappen Spara har valts startas Azure-appen om. Miljövariabeln är tillgänglig för appen när tjänsten har startats om.
När en app använder Web Hostläses miljövariabler in i appens konfiguration när CreateDefaultBuilder anropas för att skapa värden. Mer information finns i ASP.NET Core Web Host och Environment Variables Configuration Provider.
Scenarier för proxyserver och lastbalanserare
IIS Integration Middleware, som konfigurerar Forwarded Headers Middleware när det är värd för out-of-process, och ASP.NET Core Module konfigureras för att vidarebefordra schemat (HTTP/HTTPS) och den externa IP-adressen där begäran har sitt ursprung. Ytterligare konfiguration kan krävas för appar som finns bakom ytterligare proxyservrar och lastbalanserare. Mer information finns i Konfigurera ASP.NET Core att fungera med proxyservrar och lastbalanserare.
Övervakning och loggning
ASP.NET Core-appar som distribueras till App Service får automatiskt ett App Service-tillägg, ASP.NET Core Logging Integration. Tillägget möjliggör loggningsintegrering för ASP.NET Core-appar i Azure App Service.
ASP.NET Core-appar som distribueras till App Service får automatiskt ett App Service-tillägg ASP.NET Core Logging Extensions. Tillägget möjliggör loggningsintegrering för ASP.NET Core-appar i Azure App Service.
Information om övervakning, loggning och felsökning finns i följande artiklar:
Övervaka appar i Azure App Service
Lär dig hur du granskar kvoter och mått för appar och App Service-planer.
Aktivera diagnostikloggning för appar i Azure App Service
Upptäck hur du aktiverar och får åtkomst till diagnostikloggning för HTTP-statuskoder, misslyckade begäranden och webbserveraktivitet.
Hantera fel i ASP.NET Core
Förstå vanliga metoder för att hantera fel i ASP.NET Core-appar.
Felsöka ASP.NET Core i Azure App Service och IIS-
Lär dig hur du diagnostiserar problem med Azure App Service-distributioner med ASP.NET Core-appar.
Vanliga fel vid felsökning för Azure App Service och IIS med ASP.NET Core
Se vanliga distributionskonfigurationsfel för appar som hanteras av Azure App Service/IIS med felsökningsråd.
Data Protection-nyckelring och distributionsfack
dataskyddsnycklar sparas i mappen %HOME%\ASP.NET\DataProtection-Keys. Den här mappen backas upp av nätverkslagring och synkroniseras på alla datorer som är värdar för appen. Nycklar skyddas inte i vila. Den här mappen tillhandahåller nyckelringen till alla instanser av en app i ett enda distributionsfack. Separata utplaceringsplatser, till exempel Mellanlagring och Produktion, delar inte samma nyckelring.
När du byter mellan distributionsplatser kan inget system som använder dataskydd dekryptera lagrade data med hjälp av nyckelringen i föregående fack. ASP.NET Cookie Middleware använder dataskydd för att skydda sina cookies. Detta leder till att användare loggas ut från en app som använder standarden ASP.NET Cookie Middleware. För en platsoberoende nyckelringslösning använder du en extern nyckelringsprovider, till exempel:
- Azure Blob Storage
- Azure Key Vault
- SQL-butik
- Rediscache
Mer information finns i Nyckellagringsproviders i ASP.NET Core.
Distribuera en ASP.NET Core-app som använder en .NET Core-förhandsversion
Information om hur du distribuerar en app som använder en förhandsversion av .NET Core finns i följande resurser. Dessa tillvägagångssätt används också när körmiljön är tillgänglig, men SDK:t har inte installerats på Azure App Service.
- Ange .NET Core SDK-versionen med Azure Pipelines
- Distribuera en fristående förhandsversionsapp
- Använda Docker med Web Apps för containrar
- Installera förhandsgranskningswebbplatstillägget
Se ASP.NET Core på App Service-instrumentpanelen för den version av ASP.NET Core som är tillgänglig i Azure App Service.
Se Välj den .NET Core-version som ska användas för information om hur du väljer versionen av .NET SDK för fristående distributioner.
Ange .NET Core SDK-versionen genom att använda Azure Pipelines
Använd Azure App Service CI/CD-scenarier för att konfigurera en kontinuerlig integreringsversion med Azure DevOps. När Azure DevOps-versionen har skapats kan du konfigurera versionen så att den använder en specifik SDK-version.
Ange .NET Core SDK-versionen
När du använder App Service-distributionscentret för att skapa en Azure DevOps-version innehåller standardgenereringspipelinen steg för Restore
, Build
, Test
och Publish
. Om du vill ange SDK-versionen väljer du knappen Lägg till (+) i listan Agentjobb för att lägga till ett nytt steg. Sök efter .NET Core SDK- i sökfältet.
Flytta steget till den första positionen i bygget så att stegen som följer den använder den angivna versionen av .NET Core SDK. Ange versionen av .NET Core SDK. I det här exemplet är SDK inställt på 3.0.100
.
Om du vill publicera en fristående distribution (SCD)konfigurerar du SCD i Publish
-steget och anger Runtime Identifier (RID).
Distribuera en fristående förhandsversionsapp
En fristående distribution (SCD) som är avsedd för en förhandsversionskörning innehåller själva förhandsversionskörningen i distributionen.
När du distribuerar en fristående app:
- Webbplatsen i Azure App Service kräver inte förhandsgranskningswebbplatstillägget .
- Appen måste publiceras enligt en annan metod än vid publicering för en ramverksberoende distribution (FDD).
Följ riktlinjerna i avsnittet Utdriftsätta den fristående appen.
Använda Docker med Web Apps för containrar
Docker Hub på https://hub.docker.com/_/microsoft-dotnet
innehåller den senaste förhandsversionen av Docker-avbildningar. Bilderna kan användas som basavbildning. Använd avbildningen och distribuera till Web Apps for Containers som vanligt.
Installera webbplatstillägget för förhandsversionen
Om ett problem uppstår med förhandsgranskningswebbplatstillägget ska du öppna ett ärende i dotnet/AspNetCore.
- Från Azure-portalen går du till App Service.
- Välj webbappen.
- Skriv "ex" i sökrutan för att filtrera efter "Tillägg" eller rulla nedåt i listan över hanteringsverktyg.
- Välj tillägg.
- Välj Lägg till.
- Välj ASP.NET Core {X.Y} ({x64|x86}) Runtime-tillägget i listan, där
{X.Y}
är ASP.NET Core-förhandsversionen och{x64|x86}
anger plattformen. - Välj OK för att acceptera de juridiska villkoren.
- Välj OK för att installera tillägget.
När åtgärden är klar installeras den senaste .NET Core-förhandsversionen. Kontrollera installationen:
Välj Avancerade verktyg.
Välj Gå i Avancerade verktyg.
Välj menyalternativet felsökningskonsolen>PowerShell.
Kör följande kommando i PowerShell-prompten. Ersätt ASP.NET Core-körningsversionen med
{X.Y}
och plattformen för{PLATFORM}
i kommandot:Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.{PLATFORM}\
Kommandot returnerar
True
när x64 preview-körningen är installerad.
Notera
Plattformsarkitekturen (x86/x64) för en App Services-app anges i appens inställningar i Azure-portalen för appar som finns på en A-serieberäkning (Basic) eller högre värdnivå. Bekräfta att appens publiceringsinställningar (till exempel i Visual Studio publicera profil (.pubxml)) matchar inställningen i appens tjänstkonfiguration i Azure-portalen.
Om appen körs i processläge och plattformsarkitekturen har konfigurerats för 64-bitars (x64) använder ASP.NET Core Module 64-bitars förhandsgranskningskörningen, om den finns. Installera ASP.NET Core {X.Y} (x64) Runtime-tillägget med azure-portalen.
När du har installerat x64-förhandsversionen kör du följande kommando i Azure Kudu PowerShell-kommandofönstret för att verifiera installationen. Ersätt ASP.NET Core-körningsversionen med {X.Y}
i följande kommando:
Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\
Kommandot returnerar True
när x64 preview-körningen är installerad.
Använd förhandsgranskningswebbplatstillägget med en ARM-mall
Om en ARM-mall används för att skapa och distribuera appar kan Microsoft.Web/sites/siteextensions
resurstyp användas för att lägga till webbplatstillägget i en webbapp. I följande exempel läggs ASP.NET Core 5.0 (x64) Runtime-webbplatstillägg (AspNetCoreRuntime.5.0.x64
) till i appen:
{
...
"parameters": {
"site_name": {
"defaultValue": "{SITE NAME}",
"type": "String"
},
...
},
...
"resources": [
...
{
"type": "Microsoft.Web/sites/siteextensions",
"apiVersion": "2018-11-01",
"name": "[concat(parameters('site_name'), '/AspNetCoreRuntime.5.0.x64')]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
]
}
]
}
För platshållaren {SITE NAME}
använder du appens namn i Azure App Service (till exempel contoso
).
Publicera och distribuera appen
För en 64-bitars distribution:
- Använd en 64-bitars .NET Core SDK för att skapa en 64-bitarsapp.
- Ange Platform till 64-bitars i App Service Configuration>Allmänna inställningar. Appen måste använda en Bas- eller högre prenumerationsplan för att möjliggöra valet av plattformens arkitektur.
Distribuera app som är beroende av ramverk
Appar som publiceras som ramverksberoende är plattformskompatibla och inkluderar inte .NET-körtiden i distributionen. Azure App Service innehåller .NET-ramverket.
- Högerklicka på projektet i Solution Explorer och välj Publicera. Du kan också välja Skapa>Publicera {Programnamn} från Visual Studio-verktygsfältet.
- I dialogrutan Publicera väljer du Azure>Nästa.
- Välj Azure-tjänsten.
- Välj Avancerat. Dialogrutan Publicera öppnas.
- Välj en resursgrupp och värdplan eller skapa nya.
- Välj Slutför.
- På sidan Publicera:
- För Konfigurationväljer du pennikonen Redigera konfiguration:
- Kontrollera att konfigurationen Release har valts.
- I listrutan distributionsläge väljer du Framework-Beroende.
- I listrutan Målkörning väljer du önskad körning. Standardvärdet är
win-x86
.
- Om du vill ta bort ytterligare filer vid distributionen öppnar du Filpubliceringsalternativ och markerar kryssrutan för att ta bort ytterligare filer på målet.
- Välj Spara.
- Välj Publicera.
- För Konfigurationväljer du pennikonen Redigera konfiguration:
Distribuera appen fristående
Om du publicerar en app som fristående skapas en plattformsspecifik körbar fil. Utdatapubliceringsmappen innehåller alla komponenter i appen, inklusive .NET-biblioteken och körmiljön. Mer information finns i [Publicera fristående]/dotnet/core/deploying/#publish-self-contained). Använd Visual Studio eller .NET CLI för en fristående distribution (SCD).
- Högerklicka på projektet i Solution Explorer och välj Publicera. Du kan också välja Skapa>Publicera {Programnamn} från Visual Studio-verktygsfältet.
- I dialogrutan Publicera väljer du Azure>Nästa.
- Välj Azure-tjänsten.
- Välj Avancerat. Dialogrutan Publicera öppnas.
- Välj en resursgrupp och värdplan eller skapa nya.
- Välj Slutför.
- På sidan Publicera:
- För Konfigurationväljer du pennikonen Redigera konfiguration:
- Kontrollera att konfigurationen Release har valts.
- I rullgardinsmenyn för distributionsläge väljer du fristående .
- I listrutan Målkörtid väljer du önskad körtid. Standardvärdet är
win-x86
.
- Om du vill ta bort ytterligare filer vid distributionen öppnar du Filpubliceringsalternativ och markerar kryssrutan för att ta bort ytterligare filer på målet.
- Välj Spara.
- Välj Publicera.
- För Konfigurationväljer du pennikonen Redigera konfiguration:
Protokollinställningar (HTTPS)
Med säkra protokollbindningar kan du ange ett certifikat som ska användas när du svarar på begäranden via HTTPS. Bindning kräver ett giltigt privat certifikat (.pfx) som utfärdats för det specifika värdnamnet. För mer information, se Självstudie: Binda ett befintligt anpassat SSL-certifikat till Azure App Service.
Transformera web.config
Om du behöver transformera web.config vid publicering (till exempel ange miljövariabler baserat på konfiguration, profil eller miljö) kan du läsa Transformera web.config.
Ytterligare resurser
- App Service-översikt
- Översikt över Azure App Service-diagnostik
- Host ASP.NET Core i en webbgrupp
- Självstudie: Ansluta till SQL Database från .NET App Service utan hemligheter med hjälp av en hanterad identitet
Azure App Service på Windows Server använder Internet Information Services (IIS). Kestrel och YARP på frontänden tillhandahåller lastbalanserare. Följande avsnitt gäller den underliggande IIS-tekniken:
ASP.NET Core