Hostowanie i wdrażanie platformy ASP.NET Core
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
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.
Aby uzyskać Blazor wskazówki dotyczące hosta i wdrażania, które dodaje lub zastępuje wskazówki w tym węźle, zobacz Host and deploy ASP.NET Core Blazor.
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:
- Linux
- Windows:
Konfigurowanie zwrotnego serwera proxy
Jeśli aplikacja używa Kestrel serwera, serwera Nginx lub usług IIS może służyć jako zwrotny serwer proxy. 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
- Omówienie publikowania aplikacji platformy .NET
- Rozwiązywanie problemów i debugowanie projektów ASP.NET Core
- Hosting platformy ASP.NET
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:
- Linux
- Windows:
Konfigurowanie zwrotnego serwera proxy
Jeśli aplikacja używa Kestrel serwera, serwera Nginx lub usług IIS może służyć jako zwrotny serwer proxy. 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
- Omówienie publikowania aplikacji platformy .NET
- Rozwiązywanie problemów i debugowanie projektów ASP.NET Core
- Hosting platformy ASP.NET