裝載及部署 ASP.NET Core

一般是將 ASP.NET Core 應用程式部署到裝載環境:

  • 將已發行的電子郵件部署到裝載伺服器上的資料夾。
  • 設定處理序管理員,以在要求到達時啟動應用程式,並在其損毀或伺服器重新開機後重新啟動應用程式。
  • 至於反向 Proxy 的設定,請對反向 Proxy 進行設定,使其將要求轉送到應用程式。

發行至資料夾

dotnet publish 命令會編譯應用程式程式碼,並將執行應用程式所需的檔案複製到 publish 資料夾。 從 Visual Studio 部署時,dotnet publish 步驟會在檔案複製到部署目的地之前自動執行。

發佈設定檔

*.json 檔案預設會發佈。 若要發佈其他設定檔,請在專案檔的 元素中 <ItemGroup><Content Include= ... /> 指定它們。 下列範例會發佈 XML 檔案:

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

資料夾內容

publish 資料夾包含一或多個應用程式組件檔、相依性,也可能會有 .NET 執行階段。

.NET Core 應用程式可以發行為「自主式部署」或「相依於架構的部署」。 如果應用程式是自主式,包含 .NET 執行階段的組件檔會包含在 publish 資料夾中。 如果應用程式是與 Framework 相依的應用程式,則不會包含 .NET 執行階段檔案,因為應用程式具有對伺服器上已安裝之 .NET 版本的參考。 預設部署模式是與 Framework 相依。 如需詳細資訊,請參閱 .NET Core 應用程式部署

除了 .exe.dll 檔案之外,ASP.NET Core 應用程式的 publish 資料夾通常還包含組態檔、靜態資產和 MVC 檢視。 如需詳細資訊,請參閱ASP.NET Core目錄結構

設定處理序管理員

ASP.NET Core 應用程式是一種主控台應用程式,必須在伺服器開機和損毀後重新啟動。 若要自動化啟動和重新啟動,需要有處理序管理員。 ASP.NET Core 最常見的處理序管理員是:

設定反向 Proxy

如果應用程式使用 Kestrel 伺服器, NginxApacheIIS 可以做為反向 Proxy 伺服器。 反向 Proxy 伺服器會從網際網路接收 HTTP 要求,並將其轉送至 Kestrel 。

其中一種組態,不論是否具有反向 Proxy 伺服器,都是支援的裝載組態。 如需詳細資訊,請參閱 何時搭配反向 Proxy 使用 Kestrel

其中一種組態,不論是否具有反向 Proxy 伺服器,都是支援的裝載組態。 如需詳細資訊,請參閱 何時搭配反向 Proxy 使用 Kestrel

Proxy 伺服器和負載平衡器案例

Proxy 伺服器和負載平衡器後方託管的應用程式可能需要其他設定。 若沒有其他設定,應用程式可能無法存取配置 (HTTP/HTTPS) 和發出要求的遠端 IP 位址。 如需詳細資訊,請參閱設定 ASP.NET Core 以處理 Proxy 伺服器和負載平衡器

使用 Visual Studio 和 MSBuild 來自動化部署

除了從 dotnet publish 將輸出複製到伺服器之外,部署通常還需要額外的工作。 例如,publish 資料夾可能需要或排除額外的檔案。 Visual Studio 使用 MSBuild 進行 Web 部署,而且 MSBuild 可以在部署期間自訂以執行許多其他工作。 如需詳細資訊,請參閱Visual Studio 發佈設定檔 (.pubxml) ,以用於 ASP.NET Core應用程式部署和使用MSBuild 和 Team Foundation Build書籍。

使用發佈 Web 功能應用程式可以直接從 Visual Studio 部署至Azure App 服務。 Azure DevOps Services 支援持續部署至 Azure App Service。 如需詳細資訊,請參閱適用于 ASP.NET Core開發人員的 DevOps

發佈至 Azure

如需如何使用 Visual Studio 將應用程式發佈至 Azure 的指示,請參閱使用 Visual Studio 將 ASP.NET Core應用程式發佈至 Azure。 在 Azure 中建立 ASP.NET Core Web 應用程式提供其他範例。

在 Windows 上使用 MSDeploy 來發行

如需如何使用 Visual Studio 發行設定檔發佈應用程式的說明,請參閱Visual Studio 發佈設定檔 (.pubxml ASP.NET Core) ,以取得如何使用 Visual Studio 發佈設定檔發佈應用程式的指示,包括使用dotnet msbuild命令從 Windows 命令提示字元發佈應用程式。

網際網路資訊服務 (IIS)

如需使用web.config檔案提供的組態部署至 Internet Information Services (IIS) ,請參閱Windows 上具有 IIS 的主機 ASP.NET Core底下的文章。

裝載於 Web 伺服陣列

如需在 Web 服務器陣列環境中裝載 ASP.NET Core應用程式的組態資訊 (,例如部署應用程式的多個實例以進行延展性) ,請參閱Web 服務器陣列中的主機 ASP.NET Core

Docker 上的主機

如需詳細資訊,請參閱Docker 容器中的主機 ASP.NET Core

執行健康狀態檢查

您可以使用健康狀態檢查中介軟體,對應用程式及其相依性執行健康狀態檢查。 如需詳細資訊,請參閱 ASP.NET Core 中的健康狀態檢查

其他資源

一般是將 ASP.NET Core 應用程式部署到裝載環境:

  • 將已發行的電子郵件部署到裝載伺服器上的資料夾。
  • 設定處理序管理員,以在要求到達時啟動應用程式,並在其損毀或伺服器重新開機後重新啟動應用程式。
  • 至於反向 Proxy 的設定,請對反向 Proxy 進行設定,使其將要求轉送到應用程式。

發行至資料夾

dotnet publish 命令會編譯應用程式程式碼,並將執行應用程式所需的檔案複製到 publish 資料夾。 從 Visual Studio 部署時,dotnet publish 步驟會在檔案複製到部署目的地之前自動執行。

資料夾內容

publish 資料夾包含一或多個應用程式組件檔、相依性,也可能會有 .NET 執行階段。

.NET Core 應用程式可以發行為「自主式部署」或「相依於架構的部署」。 如果應用程式是自主式,包含 .NET 執行階段的組件檔會包含在 publish 資料夾中。 如果應用程式是與 Framework 相依的應用程式,則不會包含 .NET 執行階段檔案,因為應用程式具有對伺服器上已安裝之 .NET 版本的參考。 預設部署模式是與 Framework 相依。 如需詳細資訊,請參閱 .NET Core 應用程式部署

除了 .exe.dll 檔案之外,ASP.NET Core 應用程式的 publish 資料夾通常還包含組態檔、靜態資產和 MVC 檢視。 如需詳細資訊,請參閱ASP.NET Core目錄結構

設定處理序管理員

ASP.NET Core 應用程式是一種主控台應用程式,必須在伺服器開機和損毀後重新啟動。 若要自動化啟動和重新啟動,需要有處理序管理員。 ASP.NET Core 最常見的處理序管理員是:

設定反向 Proxy

如果應用程式使用 Kestrel 伺服器, NginxApacheIIS 可以做為反向 Proxy 伺服器。 反向 Proxy 伺服器會從網際網路接收 HTTP 要求,並將其轉送至 Kestrel 。

其中一種組態,不論是否具有反向 Proxy 伺服器,都是支援的裝載組態。 如需詳細資訊,請參閱 何時搭配反向 Proxy 使用 Kestrel

Proxy 伺服器和負載平衡器案例

Proxy 伺服器和負載平衡器後方託管的應用程式可能需要其他設定。 若沒有其他設定,應用程式可能無法存取配置 (HTTP/HTTPS) 和發出要求的遠端 IP 位址。 如需詳細資訊,請參閱設定 ASP.NET Core 以處理 Proxy 伺服器和負載平衡器

使用 Visual Studio 和 MSBuild 來自動化部署

除了從 dotnet publish 將輸出複製到伺服器之外,部署通常還需要額外的工作。 例如,publish 資料夾可能需要或排除額外的檔案。 Visual Studio 會將 MSBuild 用於 Web 部署,而且您可以自訂 MSBuild 在部署期間執行許多其他工作。 如需詳細資訊,請參閱Visual Studio 發佈設定檔 (.pubxml) ,以用於 ASP.NET Core應用程式部署和使用MSBuild 和 Team Foundation Build書籍。

藉由使用發佈 Web 功能,應用程式可以直接從 Visual Studio 部署到Azure App 服務。 Azure DevOps Services 支援持續部署至 Azure App Service。 如需詳細資訊,請參閱開發人員 ASP.NET Core DevOps

發佈至 Azure

如需如何使用Visual Studio 將應用程式發佈至 Azure 的指示,請參閱使用 Visual Studio 將 ASP.NET Core應用程式發佈至 Azure。 在 Azure 中建立 ASP.NET Core Web 應用程式提供其他範例。

在 Windows 上使用 MSDeploy 來發行

如需如何使用 Visual Studio 發佈設定檔的指示,請參閱 Visual Studio 發佈設定檔 (.pubxml ASP.NET Core) ,以取得如何使用 Visual Studio 發佈設定檔發佈應用程式的指示,包括使用dotnet msbuild命令從 Windows 命令提示字元發佈應用程式。

網際網路資訊服務 (IIS)

如需使用web.config檔案所提供的組態部署至 Internet Information Services (IIS) ,請參閱Windows 上具有 IIS 的主機 ASP.NET Core下的文章。

裝載於 Web 伺服陣列

如需在 Web 服務器陣列環境中裝載 ASP.NET Core應用程式的組態資訊 (,例如部署多個應用程式實例以進行延展性) ,請參閱 Web 服務器陣列中的主機 ASP.NET Core

Docker 上的主機

如需詳細資訊,請參閱Docker 容器中的主機 ASP.NET Core

其他資源