Dela via


Värda och distribuera ASP.NET Core

Anteckning

Det här är inte den senaste versionen av den här artikeln. För 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. För den nuvarande utgåvan, se 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 aktuella utgåvan, se .NET 9-versionen av den här artikeln.

I allmänhet distribuerar du en ASP.NET Core-app till en värdmiljö:

  • Distribuera den publicerade appen till en mapp på värdservern.
  • Konfigurera en processhanterare som startar appen när begäranden tas emot och startar om appen när den kraschar eller servern startas om.
  • För konfiguration av en omvänd proxy konfigurerar du en omvänd proxy för att vidarebefordra begäranden till appen.

Vägledning för Blazor värd och distribution, som lägger till eller ersätter vägledningen i den här noden, finns i Host and deploy ASP.NET Core Blazor.

Publicera till en mapp

Kommandot dotnet publish kompilerar appkod och kopierar de filer som krävs för att köra appen till en publicera mapp. När du distribuerar från Visual Studio sker dotnet publish steget automatiskt innan filerna kopieras till distributionsmålet.

Kör den publicerade appen lokalt

Kör den publicerade appen lokalt genom att köra dotnet <ApplicationName>.dll från publiceringsmappen .

Publicera inställningsfiler

*.json filer publiceras som standard. Om du vill publicera andra inställningsfiler anger du dem i ett <ItemGroup><Content Include= ... /> element i projektfilen. I följande exempel publiceras XML-filer:

<ItemGroup>
  <Content Include="**\*.xml" Exclude="bin\**\*;obj\**\*"
    CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

Mappinnehåll

Publiceringsmappen innehåller en eller flera programmonteringsfiler, dess beroenden och eventuellt .NET-körningsmiljön.

En .NET Core-app kan publiceras som fristående distribution eller ramverksberoende distribution. Om appen är fristående inkluderas assembly-filerna som innehåller .NET runtime i publiceringsmappen . Om appen är ramverksberoende inkluderas inte .NET-körningsfilerna eftersom appen har en referens till en version av .NET som är installerad på servern. Standarddistributionsmodellen är ramverksberoende. Mer information finns i .NET Core-programdistribution.

Förutom .exe och .dll filer innehåller publiceringsmappen för en ASP.NET Core-app vanligtvis konfigurationsfiler, statisk innehåll och MVC-vyer. Mer information finns i ASP.NET Core-katalogstruktur.

Konfigurera en processhanterare

En ASP.NET Core-app är en konsolapp som måste startas när en server startar och startas om om den kraschar. För att automatisera starter och omstarter krävs en processhanterare. De vanligaste processcheferna för ASP.NET Core är:

Konfigurera en omvänd proxy

Om appen använder Kestrel-servern kan Nginxeller IIS- användas som omvänd proxyserver. En omvänd proxyserver tar emot HTTP-begäranden från Internet och vidarebefordrar dem till Kestrel.

Antingen är konfiguration – med eller utan en omvänd proxyserver – en värdkonfiguration som stöds. Mer information finns i När du ska använda Kestrel med en omvänd proxy.

Antingen är konfiguration – med eller utan en omvänd proxyserver – en värdkonfiguration som stöds. Mer information finns i När du ska använda Kestrel med en omvänd proxy.

Scenarier för proxyserver och lastbalanserare

Ytterligare konfiguration kan krävas för appar som finns bakom proxyservrar och lastbalanserare. Utan ytterligare konfiguration kanske en app inte har åtkomst till schemat (HTTP/HTTPS) och den fjärranslutna IP-adress där en begäran har sitt ursprung. Mer information finns i Konfigurera ASP.NET Core att fungera med proxyservrar och lastbalanserare.

Använda Visual Studio och MSBuild för att automatisera distributioner

Distributionen kräver ofta ytterligare uppgifter förutom att kopiera utdata från dotnet publicera till en server. Till exempel kan extra filer krävas eller undantas från publicera mapp. Visual Studio använder MSBuild- för webbdistribution, och MSBuild kan anpassas för att utföra många andra uppgifter under distributionen. Mer information finns i Visual Studio publicera profiler (.pubxml) för ASP.NET Core-appdistribution och Using MSBuild and Team Foundation Build book.

Genom att använda funktionen Publicera webb appar kan distribueras direkt från Visual Studio till Azure App Service. Azure DevOps Services stöder kontinuerlig distribution till Azure App Service. Mer information finns i DevOps for ASP.NET Core Developers.

Publicera till Azure

Se Publicera en ASP.NET Core-app till Azure med Visual Studio för instruktioner om hur du publicerar en app till Azure med Hjälp av Visual Studio. Ett annat exempel tillhandahålls av Skapa en ASP.NET Core-webbapp i Azure.

Publicera med MSDeploy i Windows

Se Visual Studio-publiceringsprofiler (.pubxml) för ASP.NET Core-appdistribution för instruktioner om hur du publicerar en app med en Visual Studio-publiceringsprofil, inklusive från en Windows-kommandotolk med hjälp av kommandot dotnet msbuild.

Internet Information Services (IIS)

Information om distributioner till IIS (Internet Information Services) med konfiguration som tillhandahålls av web.config-filen finns i artiklarna under Host ASP.NET Core on Windows with IIS.

Värd i en webbservergrupp

Information om konfiguration för att hantera ASP.NET Core-appar i en webbgruppsmiljö (till exempel distribution av flera instanser av din app för skalbarhet) finns i Värd ASP.NET Core i en webbgrupp.

Så här är du värd på Docker

Mer information finns i Host ASP.NET Core i Docker-containrar.

Utföra hälsokontroller

Använd Health Check Middleware för att utföra hälsokontroller på en app och dess beroenden. Mer information finns i Hälsokontroller i ASP.NET Core.

Ytterligare resurser

I allmänhet distribuerar du en ASP.NET Core-app till en värdmiljö:

  • Distribuera den publicerade appen till en mapp på värdservern.
  • Konfigurera en processhanterare som startar appen när begäranden tas emot och startar om appen när den kraschar eller servern startas om.
  • För konfiguration av en omvänd proxy konfigurerar du en omvänd proxy för att vidarebefordra begäranden till appen.

Publicera till en mapp

Kommandot dotnet publish kompilerar appkod och kopierar de filer som krävs för att köra appen till en publicera mapp. När du distribuerar från Visual Studio sker dotnet publish steget automatiskt innan filerna kopieras till distributionsmålet.

Mappinnehåll

Mappen publicera innehåller en eller flera applikationssamlingar, beroenden och eventuellt .NET-körtid.

En .NET Core-app kan publiceras som fristående distribution eller ramverksberoende distribution. Eftersom appen är fristående, inkluderas assembly-filerna som innehåller .NET runtime i mappen publicering. Om appen är ramverksberoende inkluderas inte .NET-körningsfilerna eftersom appen har en referens till en version av .NET som är installerad på servern. Standarddistributionsmodellen är ramverksberoende. Mer information finns i .NET Core-programdistribution.

Förutom .exe och .dll filer innehåller publicera mapp för en ASP.NET Core-app vanligtvis konfigurationsfiler, statiska tillgångar och MVC-vyer. Mer information finns i ASP.NET Core-katalogstruktur.

Konfigurera en processhanterare

En ASP.NET Core-app är en konsolapp som måste startas när en server startar och startas om om den kraschar. För att automatisera starter och omstarter krävs en processhanterare. De vanligaste processcheferna för ASP.NET Core är:

Konfigurera en omvänd proxy

Om appen använder Kestrel-servern kan Nginxeller IIS- användas som omvänd proxyserver. En omvänd proxyserver tar emot HTTP-begäranden från Internet och vidarebefordrar dem till Kestrel.

Antingen är konfiguration – med eller utan en omvänd proxyserver – en värdkonfiguration som stöds. Mer information finns i När du ska använda Kestrel med en omvänd proxy.

Scenarier för proxyserver och lastbalanserare

Ytterligare konfiguration kan krävas för appar som finns bakom proxyservrar och lastbalanserare. Utan ytterligare konfiguration kanske en app inte har åtkomst till schemat (HTTP/HTTPS) och den fjärranslutna IP-adress där en begäran har sitt ursprung. Mer information finns i Konfigurera ASP.NET Core att fungera med proxyservrar och lastbalanserare.

Använda Visual Studio och MSBuild för att automatisera distributioner

Distributionen kräver ofta ytterligare uppgifter förutom att kopiera utdata från dotnet publicera till en server. Till exempel kan extra filer krävas eller undantas från publicera mapp. Visual Studio använder MSBuild för webbdistribution, och MSBuild kan anpassas för att utföra många andra uppgifter under distributionen. Mer information finns i Visual Studio publiceringsprofiler (.pubxml) för distribution av ASP.NET Core-appar och boken Using MSBuild and Team Foundation Build.

Med hjälp av funktionen Publicera webbkan appar distribueras direkt från Visual Studio till Azure App Service. Azure DevOps Services stöder kontinuerlig distribution till Azure App Service. Mer information finns i DevOps for ASP.NET Core Developers.

Publicera till Azure

Se Publicera en ASP.NET Core-app till Azure med Visual Studio för instruktioner om hur du publicerar en app till Azure med Hjälp av Visual Studio. Ett annat exempel tillhandahålls av Skapa en ASP.NET Core-webbapp i Azure.

Publicera med MSDeploy i Windows

Se Visual Studio-publiceringsprofiler (.pubxml) för ASP.NET Core-appdistribution för instruktioner om hur du publicerar en app med en Visual Studio-publiceringsprofil, inklusive från en Windows-kommandotolk med hjälp av kommandot dotnet msbuild.

Internet Information Services (IIS)

Information om distributioner till IIS (Internet Information Services) med konfiguration som tillhandahålls av web.config-filen finns i artiklarna under Host ASP.NET Core on Windows with IIS.

Värd i en webbfarm

Information om konfiguration för att hantera ASP.NET Core-appar i en webbgruppsmiljö (till exempel distribution av flera instanser av din app för skalbarhet) finns i Värd ASP.NET Core i en webbgrupp.

Värdmiljö på Docker

Mer information finns i Host ASP.NET Core i Docker-containrar.

Ytterligare resurser