Hostowanie i wdrażanie platformy ASP.NET Core

Ogólnie rzecz biorąc, aby wdrożyć aplikację ASP.NET Core w środowisku hostingu:

  • Wdróż opublikowaną aplikację w folderze na serwerze hostingu.
  • Skonfiguruj menedżera procesów uruchamiającego aplikację po nadejściu żądań i uruchamiającego ją ponownie po awarii lub ponownym uruchomieniu serwera.
  • W przypadku konfiguracji zwrotnego serwera proxy skonfiguruj zwrotny serwer proxy pod kątem przekazywania żądań do aplikacji.

Publikowanie w folderze

Polecenie dotnet publish kompiluje kod aplikacji i kopiuje pliki wymagane do jej uruchomienia do folderu publish. W przypadku wdrażania z programu Visual Studio krok obejmujący polecenie dotnet publish następuje automatycznie przed skopiowaniem plików do miejsca docelowego wdrożenia.

Uruchamianie opublikowanej aplikacji lokalnie

Aby uruchomić opublikowaną aplikację lokalnie, uruchom polecenie dotnet <ApplicationName>.dll z folderu publish .

Pliki ustawień publikowania

Pliki *.json są domyślnie publikowane. Aby opublikować inne pliki ustawień, określ je w elemencie <ItemGroup><Content Include= ... /> w pliku projektu. Poniższy przykład publikuje pliki XML:

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

Zawartość folderu

Folder publish zawiera co najmniej jeden plik zestawu aplikacji, zależności i opcjonalnie środowisko uruchomieniowe platformy .NET.

Aplikację platformy .NET Core można opublikować jako wdrożenie samodzielne lub wdrożenie zależne od platformy. Jeśli aplikacja jest samodzielna, pliki zestawu, które zawierają środowisko uruchomieniowe platformy .NET, znajdują się w folderze publish. Jeśli aplikacja jest zależna od platformy, pliki środowiska uruchomieniowego platformy .NET nie są uwzględniane, ponieważ aplikacja ma odwołanie do wersji platformy .NET zainstalowanej na serwerze. Domyślny model wdrażania to aplikacja zależna od platformy. Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji .NET Core.

Oprócz plików .exe i .dll folder publish aplikacji ASP.NET Core zwykle zawiera pliki konfiguracji, zasoby statyczne i widoki MVC. Aby uzyskać więcej informacji, zobacz Struktura katalogów platformy ASP.NET Core.

Konfigurowanie menedżera procesów

Aplikacja ASP.NET Core to aplikacja konsolowa, która musi zostać uruchomiona po uruchomieniu serwera i ponownie uruchomiona, jeśli ulegnie awarii. Aby zautomatyzować uruchamianie i ponowne uruchamianie, wymagany jest menedżer procesów. Najbardziej typowymi menedżerami procesów dla platformy ASP.NET Core:

Konfigurowanie zwrotnego serwera proxy

Jeśli aplikacja używa serwera Kestrel, jako zwrotnego serwera proxy można używać oprogramowania Nginx, Apache lub IIS. Zwrotny serwer proxy odbiera żądania HTTP z Internetu i przekazuje je do serwera Kestrel.

Obie konfiguracje — ze zwrotnym serwerem proxy lub bez — są obsługiwane jako konfiguracje hostingu. Aby uzyskać więcej informacji, zobacz Kiedy używać Kestrel ze zwrotnym serwerem proxy.

Obie konfiguracje — ze zwrotnym serwerem proxy lub bez — są obsługiwane jako konfiguracje hostingu. Aby uzyskać więcej informacji, zobacz Kiedy używać Kestrel ze zwrotnym serwerem proxy.

Scenariusze dotyczące serwera proxy i modułu równoważenia obciążenia

Dodatkowa konfiguracja może być wymagana w przypadku aplikacji hostowanych za serwerami proxy i modułami równoważenia obciążenia. Bez dodatkowej konfiguracji aplikacja może nie mieć dostępu do schematu (HTTP/HTTPS) i zdalnego adresu IP, z którego pochodzi żądanie. Aby uzyskać więcej informacji, zobacz Konfigurowanie platformy ASP.NET Core pod kątem pracy z serwerami proxy i modułami równoważenia obciążenia.

Automatyzowanie wdrożeń przy użyciu programu Visual Studio i aparatu MSBuild

Wdrożenie często wymaga wykonania dodatkowych zadań oprócz skopiowania danych wyjściowych polecenia dotnet publish na serwer. Na przykład dodatkowe pliki mogą być wymagane lub wykluczone z folderu publish. Program Visual Studio używa aparatu MSBuild do wdrażania w sieci Web. Aparat ten można dostosować do wielu innych zadań podczas wdrażania. Aby uzyskać więcej informacji, zobacz Profile publikowania programu Visual Studio (.pubxml) na potrzeby wdrażania aplikacji ASP.NET Core oraz książkę Using MSBuild and Team Foundation Build (Korzystanie z aparatu MSBuild i Team Foundation Build).

Za pomocą funkcji publikowania w sieci Web można wdrażać aplikacje bezpośrednio z programu Visual Studio w usłudze Azure App Service. Usługa Azure DevOps Services obsługuje ciągłe wdrażanie w usłudze Azure App Service. Aby uzyskać więcej informacji, zobacz Metodyka DevOps dla deweloperów ASP.NET Core.

Publikowanie na platformie Azure

Aby uzyskać instrukcje dotyczące publikowania aplikacji na platformie Azure przy użyciu programu Visual Studio, zobacz Publikowanie aplikacji ASP.NET Core na platformie Azure przy użyciu programu Visual Studio. Dodatkowy przykład podano tutaj: Tworzenie aplikacji internetowej ASP.NET Core na platformie Azure.

Publikowanie za pomocą narzędzia MSDeploy w systemie Windows

Aby uzyskać instrukcje dotyczące publikowania aplikacji przy użyciu profilu publikowania programu Visual Studio, w tym z poziomu wiersza polecenia systemu Windows przy użyciu polecenia dotnet msbuild, zobacz Profile publikowania programu Visual Studio (.pubxml) na potrzeby wdrażania aplikacji ASP.NET Core.

Internet Information Services (IIS)

Aby uzyskać informacje o wdrożeniach w usługach Internet Information Services (IIS) z konfiguracją przekazywaną za pomocą pliku web.config, zobacz artykuły w sekcji Hostowanie platformy ASP.NET Core w systemie Windows za pomocą usług IIS.

Hosting w farmie internetowej

Aby uzyskać informacje na temat konfigurowania hostowania aplikacji ASP.NET Core w środowisku farmy internetowej (na przykład o wdrażaniu wielu wystąpień aplikacji na potrzeby skalowalności), zobacz Hostowanie platformy ASP.NET Core w farmie internetowej.

Hostowanie na platformie Docker

Aby uzyskać więcej informacji, zobacz Hostowanie platformy ASP.NET Core w kontenerach platformy Docker.

Przeprowadzanie kontroli kondycji

Użyj oprogramowania pośredniczącego do kontrolowania kondycji, aby sprawdzić kondycję aplikacji i jej zależności. Aby uzyskać więcej informacji, zobacz Kontrola kondycji na platformie ASP.NET Core.

Dodatkowe zasoby

Ogólnie rzecz biorąc, aby wdrożyć aplikację ASP.NET Core w środowisku hostingu:

  • Wdróż opublikowaną aplikację w folderze na serwerze hostingu.
  • Skonfiguruj menedżera procesów uruchamiającego aplikację po nadejściu żądań i uruchamiającego ją ponownie po awarii lub ponownym uruchomieniu serwera.
  • W przypadku konfiguracji zwrotnego serwera proxy skonfiguruj zwrotny serwer proxy pod kątem przekazywania żądań do aplikacji.

Publikowanie w folderze

Polecenie dotnet publish kompiluje kod aplikacji i kopiuje pliki wymagane do jej uruchomienia do folderu publish. W przypadku wdrażania z programu Visual Studio krok obejmujący polecenie dotnet publish następuje automatycznie przed skopiowaniem plików do miejsca docelowego wdrożenia.

Zawartość folderu

Folder publish zawiera co najmniej jeden plik zestawu aplikacji, zależności i opcjonalnie środowisko uruchomieniowe platformy .NET.

Aplikację platformy .NET Core można opublikować jako wdrożenie samodzielne lub wdrożenie zależne od platformy. Jeśli aplikacja jest samodzielna, pliki zestawu, które zawierają środowisko uruchomieniowe platformy .NET, znajdują się w folderze publish. Jeśli aplikacja jest zależna od platformy, pliki środowiska uruchomieniowego platformy .NET nie są uwzględniane, ponieważ aplikacja ma odwołanie do wersji platformy .NET zainstalowanej na serwerze. Domyślny model wdrażania to aplikacja zależna od platformy. Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji .NET Core.

Oprócz plików .exe i .dll folder publish aplikacji ASP.NET Core zwykle zawiera pliki konfiguracji, zasoby statyczne i widoki MVC. Aby uzyskać więcej informacji, zobacz Struktura katalogów platformy ASP.NET Core.

Konfigurowanie menedżera procesów

Aplikacja ASP.NET Core to aplikacja konsolowa, która musi zostać uruchomiona po uruchomieniu serwera i ponownie uruchomiona, jeśli ulegnie awarii. Aby zautomatyzować uruchamianie i ponowne uruchamianie, wymagany jest menedżer procesów. Najbardziej typowymi menedżerami procesów dla platformy ASP.NET Core:

Konfigurowanie zwrotnego serwera proxy

Jeśli aplikacja używa serwera Kestrel, jako zwrotnego serwera proxy można używać oprogramowania Nginx, Apache lub IIS. Zwrotny serwer proxy odbiera żądania HTTP z Internetu i przekazuje je do serwera Kestrel.

Obie konfiguracje — ze zwrotnym serwerem proxy lub bez — są obsługiwane jako konfiguracje hostingu. Aby uzyskać więcej informacji, zobacz Kiedy używać Kestrel ze zwrotnym serwerem proxy.

Scenariusze dotyczące serwera proxy i modułu równoważenia obciążenia

Dodatkowa konfiguracja może być wymagana w przypadku aplikacji hostowanych za serwerami proxy i modułami równoważenia obciążenia. Bez dodatkowej konfiguracji aplikacja może nie mieć dostępu do schematu (HTTP/HTTPS) i zdalnego adresu IP, z którego pochodzi żądanie. Aby uzyskać więcej informacji, zobacz Konfigurowanie platformy ASP.NET Core pod kątem pracy z serwerami proxy i modułami równoważenia obciążenia.

Automatyzowanie wdrożeń przy użyciu programu Visual Studio i aparatu MSBuild

Wdrożenie często wymaga wykonania dodatkowych zadań oprócz skopiowania danych wyjściowych polecenia dotnet publish na serwer. Na przykład dodatkowe pliki mogą być wymagane lub wykluczone z folderu publish. Program Visual Studio używa aparatu MSBuild do wdrażania w sieci Web. Aparat ten można dostosować do wielu innych zadań podczas wdrażania. Aby uzyskać więcej informacji, zobacz Profile publikowania programu Visual Studio (.pubxml) na potrzeby wdrażania aplikacji ASP.NET Core oraz książkę Using MSBuild and Team Foundation Build (Korzystanie z aparatu MSBuild i Team Foundation Build).

Za pomocą funkcji publikowania w sieci Web można wdrażać aplikacje bezpośrednio z programu Visual Studio w usłudze Azure App Service. Usługa Azure DevOps Services obsługuje ciągłe wdrażanie w usłudze Azure App Service. Aby uzyskać więcej informacji, zobacz Metodyka DevOps dla deweloperów ASP.NET Core.

Publikowanie na platformie Azure

Aby uzyskać instrukcje dotyczące publikowania aplikacji na platformie Azure przy użyciu programu Visual Studio, zobacz Publikowanie aplikacji ASP.NET Core na platformie Azure przy użyciu programu Visual Studio. Dodatkowy przykład podano tutaj: Tworzenie aplikacji internetowej ASP.NET Core na platformie Azure.

Publikowanie za pomocą narzędzia MSDeploy w systemie Windows

Aby uzyskać instrukcje dotyczące publikowania aplikacji przy użyciu profilu publikowania programu Visual Studio, w tym z poziomu wiersza polecenia systemu Windows przy użyciu polecenia dotnet msbuild, zobacz Profile publikowania programu Visual Studio (.pubxml) na potrzeby wdrażania aplikacji ASP.NET Core.

Internet Information Services (IIS)

Aby uzyskać informacje o wdrożeniach w usługach Internet Information Services (IIS) z konfiguracją przekazywaną za pomocą pliku web.config, zobacz artykuły w sekcji Hostowanie platformy ASP.NET Core w systemie Windows za pomocą usług IIS.

Hosting w farmie internetowej

Aby uzyskać informacje na temat konfigurowania hostowania aplikacji ASP.NET Core w środowisku farmy internetowej (na przykład o wdrażaniu wielu wystąpień aplikacji na potrzeby skalowalności), zobacz Hostowanie platformy ASP.NET Core w farmie internetowej.

Hostowanie na platformie Docker

Aby uzyskać więcej informacji, zobacz Hostowanie platformy ASP.NET Core w kontenerach platformy Docker.

Dodatkowe zasoby