Hostowanie i wdrażanie ASP.NET CoreHost and deploy ASP.NET Core

Ogólnie rzecz biorąc, aby wdrożyć aplikację ASP.NET Core w środowisku hostingu:In general, to deploy an ASP.NET Core app to a hosting environment:

  • Wdróż opublikowaną aplikację w folderze na serwerze hostingu.Deploy the published app to a folder on the hosting server.
  • Skonfiguruj Menedżera procesów uruchamiający aplikację po nadejściu żądań i ponownym uruchomieniu aplikacji po awarii lub ponownym uruchomieniu serwera.Set up a process manager that starts the app when requests arrive and restarts the app after it crashes or the server reboots.
  • W przypadku konfiguracji zwrotnego serwera proxy Skonfiguruj zwrotny serwer proxy do przesyłania dalej żądań do aplikacji.For configuration of a reverse proxy, set up a reverse proxy to forward requests to the app.

Publikowanie w folderzePublish to a folder

Dotnet Publish polecenie kompiluje kod aplikacji i kopiuje pliki wymagane do uruchomienia aplikacji w folderze publikacji .The dotnet publish command compiles app code and copies the files required to run the app into a publish folder. Podczas wdrażania z programu Visual Studio, ten dotnet publish krok odbywa się automatycznie przed skopiowaniem plików do miejsca docelowego wdrożenia.When deploying from Visual Studio, the dotnet publish step occurs automatically before the files are copied to the deployment destination.

Zawartość folderuFolder contents

Folder publikowania zawiera jeden lub więcej plików zestawów aplikacji, zależności i opcjonalnie środowiska uruchomieniowego platformy .NET.The publish folder contains one or more app assembly files, dependencies, and optionally the .NET runtime.

Aplikację platformy .NET Core można opublikować jako samodzielne wdrożenie lub wdrożenie zależne od platformy .A .NET Core app can be published as self-contained deployment or framework-dependent deployment . Jeśli aplikacja jest samodzielna, pliki zestawu, które zawierają środowisko uruchomieniowe platformy .NET, znajdują się w folderze Publikowanie .If the app is self-contained, the assembly files that contain the .NET runtime are included in the publish folder. Jeśli aplikacja jest zależna od struktury, pliki środowiska uruchomieniowego platformy .NET nie są uwzględniane, ponieważ aplikacja ma odwołanie do wersji platformy .NET zainstalowanej na serwerze.If the app is framework-dependent, the .NET runtime files aren't included because the app has a reference to a version of .NET that's installed on the server. Domyślny model wdrażania jest zależny od platformy.The default deployment model is framework-dependent. Aby uzyskać więcej informacji, zobacz wdrażanie aplikacji .NET Core.For more information, see .NET Core application deployment.

Oprócz plików exe i dll , folder publikacji aplikacji ASP.NET Core zwykle zawiera pliki konfiguracji, zasoby statyczne i widoki MVC.In addition to .exe and .dll files, the publish folder for an ASP.NET Core app typically contains configuration files, static assets, and MVC views. Aby uzyskać więcej informacji, zobacz Struktura katalogów ASP.NET Core.For more information, see Struktura katalogów ASP.NET Core.

Konfigurowanie Menedżera procesówSet up a process manager

Aplikacja ASP.NET Core jest aplikacją konsolową, która musi zostać uruchomiona w przypadku awarii i ponownego uruchomienia serwera.An ASP.NET Core app is a console app that must be started when a server boots and restarted if it crashes. Aby zautomatyzować uruchamianie i ponowne uruchamianie, wymagany jest Menedżer procesów.To automate starts and restarts, a process manager is required. Najbardziej typowymi menedżerami procesów dla ASP.NET Core są:The most common process managers for ASP.NET Core are:

Konfigurowanie zwrotnego serwera proxySet up a reverse proxy

Jeśli aplikacja używa serwera Kestrel , usługi Nginx, Apachelub IIS mogą być używane jako zwrotny serwer proxy.If the app uses the Kestrel server, Nginx, Apache, or IIS can be used as a reverse proxy server. Odwrotny serwer proxy odbiera żądania HTTP z Internetu i przekazuje je do usługi Kestrel.A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel.

Jest to — obsługiwana konfiguracja hostingu, która jest konfiguracją z serwerem odwrotnego serwera proxy lub bez niego — .Either configuration—with or without a reverse proxy server—is a supported hosting configuration. Aby uzyskać więcej informacji, zobacz Kiedy używać Kestrel z zwrotnym serwerem proxy.For more information, see When to use Kestrel with a reverse proxy.

Scenariusze serwera proxy i modułu równoważenia obciążeniaProxy server and load balancer scenarios

Dodatkowa konfiguracja może być wymagana dla aplikacji hostowanych w ramach serwerów proxy i modułów równoważenia obciążenia.Additional configuration might be required for apps hosted behind proxy servers and load balancers. Bez dodatkowej konfiguracji aplikacja może nie mieć dostępu do schematu (HTTP/HTTPS) i zdalnego adresu IP, z którego pochodzi żądanie.Without additional configuration, an app might not have access to the scheme (HTTP/HTTPS) and the remote IP address where a request originated. Aby uzyskać więcej informacji, zobacz konfigurowanie ASP.NET Core do pracy z serwerami proxy i usługami równoważenia obciążenia.For more information, see Configure ASP.NET Core to work with proxy servers and load balancers.

Korzystanie z programu Visual Studio i narzędzia MSBuild do automatyzowania wdrożeńUse Visual Studio and MSBuild to automate deployments

Wdrożenie często wymaga dodatkowych zadań oprócz kopiowania danych wyjściowych z dotnet Publish na serwer.Deployment often requires additional tasks besides copying the output from dotnet publish to a server. Na przykład dodatkowe pliki mogą być wymagane lub wykluczone z folderu publikacji .For example, extra files might be required or excluded from the publish folder. Program Visual Studio używa programu MSBuild do wdrażania w sieci Web, a programu MSBuild można dostosować do wykonywania wielu innych zadań podczas wdrażania.Visual Studio uses MSBuild for web deployment, and MSBuild can be customized to do many other tasks during deployment. Aby uzyskać więcej informacji, zobacz Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core i książka using programu MSBuild i Team Foundation Build .For more information, see Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core and the Using MSBuild and Team Foundation Build book.

Za pomocą funkcji publikowania w sieci Web lub wbudowanej obsługi narzędzia Gitaplikacje można wdrażać bezpośrednio z programu Visual Studio do Azure App Service.By using the Publish Web feature or built-in Git support, apps can be deployed directly from Visual Studio to the Azure App Service. Azure DevOps Services obsługuje ciągłe wdrażanie do Azure App Service.Azure DevOps Services supports continuous deployment to Azure App Service. Aby uzyskać więcej informacji, zobacz DevOps with ASP.NET Core i platformę Azure.For more information, see DevOps with ASP.NET Core and Azure.

Publikowanie na platformie AzurePublish to Azure

Zobacz, Publikowanie aplikacji ASP.NET Core na platformie Azure przy użyciu programu Visual Studio Aby uzyskać instrukcje dotyczące publikowania aplikacji na platformie Azure przy użyciu programu Visual Studio.See Publikowanie aplikacji ASP.NET Core na platformie Azure przy użyciu programu Visual Studio for instructions on how to publish an app to Azure using Visual Studio. Dodatkowy przykład jest zapewniany przez utworzenie aplikacji sieci web ASP.NET Core na platformie Azure.An additional example is provided by Create an ASP.NET Core web app in Azure.

Publikowanie z MSDeploy w systemie WindowsPublish with MSDeploy on Windows

Zobacz Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core , aby uzyskać instrukcje dotyczące publikowania aplikacji przy użyciu profilu publikacji programu Visual Studio, w tym z wiersza polecenia systemu Windows przy użyciu polecenia MSBuild programu dotnet .See Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core for instructions on how to publish an app with a Visual Studio publish profile, including from a Windows command prompt using the dotnet msbuild command.

Internet Information Services (IIS)Internet Information Services (IIS)

W przypadku wdrożeń do Internet Information Services (IIS) z konfiguracją dostarczoną przez plik web.config zapoznaj się z artykułami poniżej ASP.NET Core hosta w systemie Windows z usługami IIS .For deployments to Internet Information Services (IIS) with configuration provided by the web.config file, see the articles under ASP.NET Core hosta w systemie Windows z usługami IIS.

Hosting w farmie internetowejHost in a web farm

Aby uzyskać informacje na temat konfiguracji do hostowania aplikacji ASP.NET Core w środowisku kolektywu serwerów sieci Web (na przykład wdrażania wielu wystąpień aplikacji na potrzeby skalowalności), zobacz ASP.NET Core hosta w kolektywie serwerów sieci Web .For information on configuration for hosting ASP.NET Core apps in a web farm environment (for example, deployment of multiple instances of your app for scalability), see ASP.NET Core hosta w kolektywie serwerów sieci Web.

Host na platformie DockerHost on Docker

Aby uzyskać więcej informacji, zobacz ASP.NET Core hosta w kontenerach platformy Docker.For more information, see ASP.NET Core hosta w kontenerach platformy Docker.

Przeprowadzanie kontroli kondycjiPerform health checks

Używaj oprogramowania do sprawdzania kondycji, aby przeprowadzać kontrole kondycji aplikacji i jej zależności.Use Health Check Middleware to perform health checks on an app and its dependencies. Aby uzyskać więcej informacji, zobacz Kontrole kondycji w ASP.NET Core.For more information, see Kontrole kondycji w ASP.NET Core.

Dodatkowe zasobyAdditional resources

Ogólnie rzecz biorąc, aby wdrożyć aplikację ASP.NET Core w środowisku hostingu:In general, to deploy an ASP.NET Core app to a hosting environment:

  • Wdróż opublikowaną aplikację w folderze na serwerze hostingu.Deploy the published app to a folder on the hosting server.
  • Skonfiguruj Menedżera procesów uruchamiający aplikację po nadejściu żądań i ponownym uruchomieniu aplikacji po awarii lub ponownym uruchomieniu serwera.Set up a process manager that starts the app when requests arrive and restarts the app after it crashes or the server reboots.
  • W przypadku konfiguracji zwrotnego serwera proxy Skonfiguruj zwrotny serwer proxy do przesyłania dalej żądań do aplikacji.For configuration of a reverse proxy, set up a reverse proxy to forward requests to the app.

Publikowanie w folderzePublish to a folder

Dotnet Publish polecenie kompiluje kod aplikacji i kopiuje pliki wymagane do uruchomienia aplikacji w folderze publikacji .The dotnet publish command compiles app code and copies the files required to run the app into a publish folder. Podczas wdrażania z programu Visual Studio, ten dotnet publish krok odbywa się automatycznie przed skopiowaniem plików do miejsca docelowego wdrożenia.When deploying from Visual Studio, the dotnet publish step occurs automatically before the files are copied to the deployment destination.

Zawartość folderuFolder contents

Folder publikowania zawiera jeden lub więcej plików zestawów aplikacji, zależności i opcjonalnie środowiska uruchomieniowego platformy .NET.The publish folder contains one or more app assembly files, dependencies, and optionally the .NET runtime.

Aplikację platformy .NET Core można opublikować jako samodzielne wdrożenie lub wdrożenie zależne od platformy .A .NET Core app can be published as self-contained deployment or framework-dependent deployment . Jeśli aplikacja jest samodzielna, pliki zestawu, które zawierają środowisko uruchomieniowe platformy .NET, znajdują się w folderze Publikowanie .If the app is self-contained, the assembly files that contain the .NET runtime are included in the publish folder. Jeśli aplikacja jest zależna od struktury, pliki środowiska uruchomieniowego platformy .NET nie są uwzględniane, ponieważ aplikacja ma odwołanie do wersji platformy .NET zainstalowanej na serwerze.If the app is framework-dependent, the .NET runtime files aren't included because the app has a reference to a version of .NET that's installed on the server. Domyślny model wdrażania jest zależny od platformy.The default deployment model is framework-dependent. Aby uzyskać więcej informacji, zobacz wdrażanie aplikacji .NET Core.For more information, see .NET Core application deployment.

Oprócz plików exe i dll , folder publikacji aplikacji ASP.NET Core zwykle zawiera pliki konfiguracji, zasoby statyczne i widoki MVC.In addition to .exe and .dll files, the publish folder for an ASP.NET Core app typically contains configuration files, static assets, and MVC views. Aby uzyskać więcej informacji, zobacz Struktura katalogów ASP.NET Core.For more information, see Struktura katalogów ASP.NET Core.

Konfigurowanie Menedżera procesówSet up a process manager

Aplikacja ASP.NET Core jest aplikacją konsolową, która musi zostać uruchomiona w przypadku awarii i ponownego uruchomienia serwera.An ASP.NET Core app is a console app that must be started when a server boots and restarted if it crashes. Aby zautomatyzować uruchamianie i ponowne uruchamianie, wymagany jest Menedżer procesów.To automate starts and restarts, a process manager is required. Najbardziej typowymi menedżerami procesów dla ASP.NET Core są:The most common process managers for ASP.NET Core are:

Konfigurowanie zwrotnego serwera proxySet up a reverse proxy

Jeśli aplikacja używa serwera Kestrel , usługi Nginx, Apachelub IIS mogą być używane jako zwrotny serwer proxy.If the app uses the Kestrel server, Nginx, Apache, or IIS can be used as a reverse proxy server. Odwrotny serwer proxy odbiera żądania HTTP z Internetu i przekazuje je do usługi Kestrel.A reverse proxy server receives HTTP requests from the Internet and forwards them to Kestrel.

Jest to — obsługiwana konfiguracja hostingu, która jest konfiguracją z serwerem odwrotnego serwera proxy lub bez niego — .Either configuration—with or without a reverse proxy server—is a supported hosting configuration. Aby uzyskać więcej informacji, zobacz Kiedy używać Kestrel z zwrotnym serwerem proxy.For more information, see When to use Kestrel with a reverse proxy.

Scenariusze serwera proxy i modułu równoważenia obciążeniaProxy server and load balancer scenarios

Dodatkowa konfiguracja może być wymagana dla aplikacji hostowanych w ramach serwerów proxy i modułów równoważenia obciążenia.Additional configuration might be required for apps hosted behind proxy servers and load balancers. Bez dodatkowej konfiguracji aplikacja może nie mieć dostępu do schematu (HTTP/HTTPS) i zdalnego adresu IP, z którego pochodzi żądanie.Without additional configuration, an app might not have access to the scheme (HTTP/HTTPS) and the remote IP address where a request originated. Aby uzyskać więcej informacji, zobacz konfigurowanie ASP.NET Core do pracy z serwerami proxy i usługami równoważenia obciążenia.For more information, see Configure ASP.NET Core to work with proxy servers and load balancers.

Korzystanie z programu Visual Studio i narzędzia MSBuild do automatyzowania wdrożeńUse Visual Studio and MSBuild to automate deployments

Wdrożenie często wymaga dodatkowych zadań oprócz kopiowania danych wyjściowych z dotnet Publish na serwer.Deployment often requires additional tasks besides copying the output from dotnet publish to a server. Na przykład dodatkowe pliki mogą być wymagane lub wykluczone z folderu publikacji .For example, extra files might be required or excluded from the publish folder. Program Visual Studio używa programu MSBuild do wdrażania w sieci Web, a programu MSBuild można dostosować do wykonywania wielu innych zadań podczas wdrażania.Visual Studio uses MSBuild for web deployment, and MSBuild can be customized to do many other tasks during deployment. Aby uzyskać więcej informacji, zobacz Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core i książka using programu MSBuild i Team Foundation Build .For more information, see Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core and the Using MSBuild and Team Foundation Build book.

Za pomocą funkcji publikowania w sieci Web lub wbudowanej obsługi narzędzia Gitaplikacje można wdrażać bezpośrednio z programu Visual Studio do Azure App Service.By using the Publish Web feature or built-in Git support, apps can be deployed directly from Visual Studio to the Azure App Service. Azure DevOps Services obsługuje ciągłe wdrażanie do Azure App Service.Azure DevOps Services supports continuous deployment to Azure App Service. Aby uzyskać więcej informacji, zobacz DevOps with ASP.NET Core i platformę Azure.For more information, see DevOps with ASP.NET Core and Azure.

Publikowanie na platformie AzurePublish to Azure

Zobacz, Publikowanie aplikacji ASP.NET Core na platformie Azure przy użyciu programu Visual Studio Aby uzyskać instrukcje dotyczące publikowania aplikacji na platformie Azure przy użyciu programu Visual Studio.See Publikowanie aplikacji ASP.NET Core na platformie Azure przy użyciu programu Visual Studio for instructions on how to publish an app to Azure using Visual Studio. Dodatkowy przykład jest zapewniany przez utworzenie aplikacji sieci web ASP.NET Core na platformie Azure.An additional example is provided by Create an ASP.NET Core web app in Azure.

Publikowanie z MSDeploy w systemie WindowsPublish with MSDeploy on Windows

Zobacz Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core , aby uzyskać instrukcje dotyczące publikowania aplikacji przy użyciu profilu publikacji programu Visual Studio, w tym z wiersza polecenia systemu Windows przy użyciu polecenia MSBuild programu dotnet .See Profile publikacji programu Visual Studio (. pubxml) dla wdrożenia aplikacji ASP.NET Core for instructions on how to publish an app with a Visual Studio publish profile, including from a Windows command prompt using the dotnet msbuild command.

Internet Information Services (IIS)Internet Information Services (IIS)

W przypadku wdrożeń do Internet Information Services (IIS) z konfiguracją dostarczoną przez plik web.config zapoznaj się z artykułami poniżej ASP.NET Core hosta w systemie Windows z usługami IIS .For deployments to Internet Information Services (IIS) with configuration provided by the web.config file, see the articles under ASP.NET Core hosta w systemie Windows z usługami IIS.

Hosting w farmie internetowejHost in a web farm

Aby uzyskać informacje na temat konfiguracji do hostowania aplikacji ASP.NET Core w środowisku kolektywu serwerów sieci Web (na przykład wdrażania wielu wystąpień aplikacji na potrzeby skalowalności), zobacz ASP.NET Core hosta w kolektywie serwerów sieci Web .For information on configuration for hosting ASP.NET Core apps in a web farm environment (for example, deployment of multiple instances of your app for scalability), see ASP.NET Core hosta w kolektywie serwerów sieci Web.

Host na platformie DockerHost on Docker

Aby uzyskać więcej informacji, zobacz ASP.NET Core hosta w kontenerach platformy Docker.For more information, see ASP.NET Core hosta w kontenerach platformy Docker.

Dodatkowe zasobyAdditional resources