裝載及部署 ASP.NET Core

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

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

發行至資料夾

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

在本機執行已發佈的應用程式

若要在本機執行已發佈的應用程式,請從 dotnet <ApplicationName>.dllpublish 資料夾執行

發佈設定檔案

系統預設會發佈 *.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 伺服器,反向 Proxy 伺服器可用 NginxApacheIIS。 反向 Proxy 伺服器會從網際網路接收 HTTP 要求,然後轉送到 Kestrel。

任一設定 (使用或不使用反向 Proxy 伺服器) 都是支援的裝載設定。 如需詳細資訊,請參閱何時搭配使用 Kestrel 與反向 Proxy

任一設定 (使用或不使用反向 Proxy 伺服器) 都是支援的裝載設定。 如需詳細資訊,請參閱何時搭配使用 Kestrel 與反向 Proxy

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

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

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

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

使用發佈 Web 功能,應用程式可以直接從 Visual Studio 部署至 Azure App Service。 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 發行設定檔來發佈應用程式的指示,包括從 Windows 命令提示字元使用 dotnet msbuild 命令,請參閱適用於 ASP.NET Core 應用程式部署的 Visual Studio 發行設定檔 (.pubxml)

Internet Information Services (IIS)

如需使用 web.config 檔案所提供的設定來部署至 Internet Information Services (IIS),請參閱在使用 IIS 的 Windows 上裝載 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 伺服器,反向 Proxy 伺服器可用 NginxApacheIIS。 反向 Proxy 伺服器會從網際網路接收 HTTP 要求,然後轉送到 Kestrel。

任一設定 (使用或不使用反向 Proxy 伺服器) 都是支援的裝載設定。 如需詳細資訊,請參閱何時搭配使用 Kestrel 與反向 Proxy

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

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

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

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

使用發佈 Web 功能,應用程式可以直接從 Visual Studio 部署至 Azure App Service。 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 發行設定檔來發佈應用程式的指示,包括從 Windows 命令提示字元使用 dotnet msbuild 命令,請參閱適用於 ASP.NET Core 應用程式部署的 Visual Studio 發行設定檔 (.pubxml)

Internet Information Services (IIS)

如需使用 web.config 檔案所提供的設定來部署至 Internet Information Services (IIS),請參閱在使用 IIS 的 Windows 上裝載 ASP.NET Core 底下的文章。

裝載於 Web 伺服陣列

如需在 Web 伺服陣列環境中裝載 ASP.NET Core 應用程式的設定資訊 (例如部署應用程式的多個執行個體以獲得調整能力),請參閱在 Web 伺服陣列上裝載 ASP.NET Core

裝載到 Docker 上

如需詳細資訊,請參閱在 Docker 容器中裝載 ASP.NET Core

其他資源