Hostování a nasazení ASP.NET Core

Obecný postup nasazení aplikace ASP.NET Core do hostitelského prostředí:

  • Nasaďte publikovanou aplikaci do složky na hostitelském serveru.
  • Nastavte správce procesů, který aplikaci spustí při přijetí požadavků a restartuje v případě selhání nebo restartování serveru.
  • Pokud chcete nakonfigurovat reverzní proxy server, nastavte ho tak, aby směroval požadavky do aplikace.

Publikování do složky

Příkaz dotnet publish zkompiluje kód aplikace a zkopíruje soubory potřebné ke spuštění aplikace do složky publish. Při publikování v sadě Visual Studio dochází ke kroku dotnet publish automaticky před zkopírováním souborů do cíle nasazení.

Místní spuštění publikované aplikace

Pokud chcete publikovanou aplikaci spustit místně, spusťte dotnet <ApplicationName>.dll ji ze složky publikování .

Publikování souborů nastavení

Ve výchozím nastavení se publikují soubory *.json. Pokud chcete publikovat jiné soubory nastavení, zadejte je v elementu <ItemGroup><Content Include= ... /> v souboru projektu. V následujícím příkladu se publikují soubory XML:

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

Obsah složky

Složka publish obsahuje jeden nebo několik souborů sestavení aplikace, závislosti a volitelně modul runtime .NET.

Aplikaci .NET Core je možné publikovat jako samostatné nasazení nebo nasazení závislé na architektuře. Pokud je aplikace samostatná, složka publish obsahuje soubory sestavení obsahující modul runtime .NET. Pokud je aplikace závislá na architektuře, soubory modulu runtime .NET v této složce nejsou, protože aplikace obsahuje odkaz na verzi .NET nainstalovanou na serveru. Výchozí model nasazení je nasazení závislé na architektuře. Další informace najdete v tématu Nasazení aplikace .NET Core.

Kromě souborů .exe a .dll složka publish aplikace ASP.NET Core obvykle obsahuje také konfigurační soubory, statické prostředky a zobrazení MVC. Další informace najdete v tématu Adresářová struktura ASP.NET Core.

Nastavení správce procesů

Aplikace ASP.NET Core je konzolová aplikace, která se musí spustit při spuštění serveru a restartovat v případě selhání. K automatizaci spouštění a restartování se vyžaduje správce procesů. Mezi nejběžnější správce procesů pro ASP.NET Core patří:

Nastavení reverzního proxy serveru

Pokud aplikace používá server Kestrel, jako reverzní proxy server je možné použít Nginx, Apache nebo službu IIS. Reverzní proxy server přijímá požadavky HTTP z internetu a předává je do serveru Kestrel.

Podporuje se jakákoli konfigurace hostování – s reverzním proxy serverem i bez něj. Další informace najdete v tématu Kdy použít Kestrel s reverzním proxy serverem.

Podporuje se jakákoli konfigurace hostování – s reverzním proxy serverem i bez něj. Další informace najdete v tématu Kdy použít Kestrel s reverzním proxy serverem.

Scénáře týkající se proxy serveru a nástroje pro vyrovnávání zatížení

Aplikace hostované za proxy servery a nástroji pro vyrovnávání zatížení můžou vyžadovat další konfiguraci. Bez další konfigurace aplikace nemusí mít přístup ke schématu (HTTP nebo HTTPS) a vzdálené IP adrese, ze které požadavek pochází. Další informace najdete v tématu Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení.

Automatizace nasazení s využitím sady Visual Studio a nástroje MSBuild

Nasazení často kromě kopírování výstupu příkazu dotnet publish na server vyžadují další úlohy. Například ve složce publish se může vyžadovat zahrnutí nebo vyloučení dalších souborů. Sada Visual Studio k nasazování webů využívá nástroj MSBuild, který je možné přizpůsobit tak, aby během nasazování prováděl řadu dalších úloh. Další informace najdete v tématu Profily publikování (.pubxml) sady Visual Studio pro nasazování aplikací ASP.NET Core a v knize Používání nástroje MSBuild a systému Team Foundation Build.

Pomocí funkce Publikovat web je možné nasazovat aplikace přímo ze sady Visual Studio do služby Azure App Service. Sada Azure DevOps Services podporuje průběžné nasazování do služby Azure App Service. Další informace najdete v tématu DevOps pro vývojáře v ASP.NET Core.

Publikování do Azure

Pokyny k publikování aplikace do Azure s využitím sady Visual Studio najdete v tématu Publikování aplikace ASP.NET Core do Azure s využitím sady Visual Studio. Další příklad najdete v tématu Vytvoření webové aplikace ASP.NET Core v Azure.

Publikování s využitím nástroje MSDeploy ve Windows

Pokyny k publikování aplikace s využitím profilu publikování sady Visual Studio a z příkazového řádku Windows s využitím příkazu dotnet msbuild najdete v tématu Profily publikování (.pubxml) sady Visual Studio pro nasazování aplikací ASP.NET Core.

IIS (Internetová informační služba)

V případě nasazování do Internetové informační služby (IIS) s využitím konfigurace v souboru web.config si projděte články v tématu Hostování ASP.NET Core ve Windows s využitím služby IIS.

Hostování ve webové farmě

Informace o konfiguraci pro hostování aplikací ASP.NET Core v prostředí webové farmy (např. nasazení několika instancí aplikace kvůli škálovatelnosti) najdete v tématu Hostování ASP.NET Core ve webové farmě.

Hostování v Dockeru

Další informace najdete v tématu Hostování ASP.NET Core v kontejnerech Docker.

Provádění kontrol stavu

K provádění kontrol stavu aplikace a jejích závislostí použijte middleware Health Check. Další informace najdete v tématu Kontroly stavu v ASP.NET Core.

Další prostředky

Obecný postup nasazení aplikace ASP.NET Core do hostitelského prostředí:

  • Nasaďte publikovanou aplikaci do složky na hostitelském serveru.
  • Nastavte správce procesů, který aplikaci spustí při přijetí požadavků a restartuje v případě selhání nebo restartování serveru.
  • Pokud chcete nakonfigurovat reverzní proxy server, nastavte ho tak, aby směroval požadavky do aplikace.

Publikování do složky

Příkaz dotnet publish zkompiluje kód aplikace a zkopíruje soubory potřebné ke spuštění aplikace do složky publish. Při publikování v sadě Visual Studio dochází ke kroku dotnet publish automaticky před zkopírováním souborů do cíle nasazení.

Obsah složky

Složka publish obsahuje jeden nebo několik souborů sestavení aplikace, závislosti a volitelně modul runtime .NET.

Aplikaci .NET Core je možné publikovat jako samostatné nasazení nebo nasazení závislé na architektuře. Pokud je aplikace samostatná, složka publish obsahuje soubory sestavení obsahující modul runtime .NET. Pokud je aplikace závislá na architektuře, soubory modulu runtime .NET v této složce nejsou, protože aplikace obsahuje odkaz na verzi .NET nainstalovanou na serveru. Výchozí model nasazení je nasazení závislé na architektuře. Další informace najdete v tématu Nasazení aplikace .NET Core.

Kromě souborů .exe a .dll složka publish aplikace ASP.NET Core obvykle obsahuje také konfigurační soubory, statické prostředky a zobrazení MVC. Další informace najdete v tématu Adresářová struktura ASP.NET Core.

Nastavení správce procesů

Aplikace ASP.NET Core je konzolová aplikace, která se musí spustit při spuštění serveru a restartovat v případě selhání. K automatizaci spouštění a restartování se vyžaduje správce procesů. Mezi nejběžnější správce procesů pro ASP.NET Core patří:

Nastavení reverzního proxy serveru

Pokud aplikace používá server Kestrel, jako reverzní proxy server je možné použít Nginx, Apache nebo službu IIS. Reverzní proxy server přijímá požadavky HTTP z internetu a předává je do serveru Kestrel.

Podporuje se jakákoli konfigurace hostování – s reverzním proxy serverem i bez něj. Další informace najdete v tématu Kdy použít Kestrel s reverzním proxy serverem.

Scénáře týkající se proxy serveru a nástroje pro vyrovnávání zatížení

Aplikace hostované za proxy servery a nástroji pro vyrovnávání zatížení můžou vyžadovat další konfiguraci. Bez další konfigurace aplikace nemusí mít přístup ke schématu (HTTP nebo HTTPS) a vzdálené IP adrese, ze které požadavek pochází. Další informace najdete v tématu Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení.

Automatizace nasazení s využitím sady Visual Studio a nástroje MSBuild

Nasazení často kromě kopírování výstupu příkazu dotnet publish na server vyžadují další úlohy. Například ve složce publish se může vyžadovat zahrnutí nebo vyloučení dalších souborů. Sada Visual Studio k nasazování webů využívá nástroj MSBuild, který je možné přizpůsobit tak, aby během nasazování prováděl řadu dalších úloh. Další informace najdete v tématu Profily publikování (.pubxml) sady Visual Studio pro nasazování aplikací ASP.NET Core a v knize Používání nástroje MSBuild a systému Team Foundation Build.

Pomocí funkce Publikovat web je možné nasazovat aplikace přímo ze sady Visual Studio do služby Azure App Service. Sada Azure DevOps Services podporuje průběžné nasazování do služby Azure App Service. Další informace najdete v tématu DevOps pro vývojáře v ASP.NET Core.

Publikování do Azure

Pokyny k publikování aplikace do Azure s využitím sady Visual Studio najdete v tématu Publikování aplikace ASP.NET Core do Azure s využitím sady Visual Studio. Další příklad najdete v tématu Vytvoření webové aplikace ASP.NET Core v Azure.

Publikování s využitím nástroje MSDeploy ve Windows

Pokyny k publikování aplikace s využitím profilu publikování sady Visual Studio a z příkazového řádku Windows s využitím příkazu dotnet msbuild najdete v tématu Profily publikování (.pubxml) sady Visual Studio pro nasazování aplikací ASP.NET Core.

IIS (Internetová informační služba)

V případě nasazování do Internetové informační služby (IIS) s využitím konfigurace v souboru web.config si projděte články v tématu Hostování ASP.NET Core ve Windows s využitím služby IIS.

Hostování ve webové farmě

Informace o konfiguraci pro hostování aplikací ASP.NET Core v prostředí webové farmy (např. nasazení několika instancí aplikace kvůli škálovatelnosti) najdete v tématu Hostování ASP.NET Core ve webové farmě.

Hostování v Dockeru

Další informace najdete v tématu Hostování ASP.NET Core v kontejnerech Docker.

Další prostředky