- 托管和部署 ASP.NET CoreHost and deploy ASP.NET Core
- 发布到文件夹Publish to a folder
- 设置进程管理器Set up a process manager
- 设置反向代理Set up a reverse proxy
- 代理服务器和负载均衡器方案Proxy server and load balancer scenarios
- 使用 Visual Studio 和 MSBuild 自动执行部署Use Visual Studio and MSBuild to automate deployments
- 发布到 AzurePublish to Azure
- 在 Windows 中使用 MSDeploy 发布Publish with MSDeploy on Windows
- Internet 信息服务 (IIS)Internet Information Services (IIS)
- 在 Web 场中托管Host in a web farm
- 在 Docker 中托管Host on Docker
- 执行运行状况检查Perform health checks
- 其他资源Additional resources
- 发布到文件夹Publish to a folder
- 设置进程管理器Set up a process manager
- 设置反向代理Set up a reverse proxy
- 代理服务器和负载均衡器方案Proxy server and load balancer scenarios
- 使用 Visual Studio 和 MSBuild 自动执行部署Use Visual Studio and MSBuild to automate deployments
- 发布到 AzurePublish to Azure
- 在 Windows 中使用 MSDeploy 发布Publish with MSDeploy on Windows
- Internet 信息服务 (IIS)Internet Information Services (IIS)
- 在 Web 场中托管Host in a web farm
- 在 Docker 中托管Host on Docker
- 其他资源Additional resources
托管和部署 ASP.NET CoreHost and deploy ASP.NET Core
本文内容
一般而言,向托管环境部署 ASP.NET Core 应用需执行以下操作:
- 将已发布应用部署到托管服务器上的文件夹。
- 设置进程管理器,该管理器在收到请求时启动应用,并在应用发生故障或服务器重启后重新启动应用。
- 对于反向代理配置,将反向代理设置为将请求转发到应用。
发布到文件夹Publish to a folder
dotnet publish 命令编译应用代码,并复制在“发布” 文件夹中运行应用所需的文件。使用 Visual Studio 进行部署时,自动先执行 dotnet publish
步骤,再将文件复制到部署目标。
文件夹内容Folder contents
“发布” 文件夹包含一个或多个应用程序集文件、依赖项以及(可选).NET 运行时。
.NET Core 应用可以发布为“独立式部署” ,也可以发布为“依赖框架的部署” 。如果应用是独立式,“发布” 文件夹中有包含 .NET 运行时的程序集文件。如果应用依赖于框架,.NET 运行时文件就不包含在内,因为应用包含对服务器上安装的 .NET 版本的引用。默认部署模型是依赖于框架的模型。有关详细信息,请参阅 .NET Core 应用程序部署。
除了“.exe” 和“.dll” 文件以外,ASP.NET Core 应用的“发布” 文件夹通常包含配置文件、静态资产和 MVC 视图。有关详细信息,请参阅 ASP.NET Core 目录结构。
设置进程管理器Set up a process manager
ASP.NET Core 应用是一个控制台应用,在服务器启动时必须启动该应用,并且在出现故障后必须重新启动它。若要自动启动和重新启动,需要使用进程管理器。用于 ASP.NET Core 的最常见进程管理器是:
- Linux
- Windows
设置反向代理Set up a reverse proxy
如果应用使用 Kestrel 服务器,Nginx、Apache 或 IIS 可用作反向代理服务器。反向代理服务器接收来自 Internet 的 HTTP 请求,并将这些请求转发到 Kestrel。
无论配置是否使用反向代理服务器,都是受支持的托管配置。有关详细信息,请参阅何时结合使用 Kestrel 和反向代理。
代理服务器和负载均衡器方案Proxy server and load balancer scenarios
对于托管在代理服务器和负载均衡器后方的应用,可能需要附加配置。如不提供附加配置,应用可能无法访问方案 (HTTP/HTTPS) 和发出请求的远程 IP 地址。有关详细信息,请参阅配置 ASP.NET Core 以使用代理服务器和负载均衡器。
使用 Visual Studio 和 MSBuild 自动执行部署Use Visual Studio and MSBuild to automate deployments
除将输出从 dotnet publish 复制到服务器外,部署通常还需要其他任务。例如,可能需要从“发布” 文件夹获取或排除额外文件。Visual Studio 使用 MSBuild 进行 Web 部署,用户可以自定义 MSBuild 以在部署期间执行其他任务。有关详细信息,请参阅 用于 ASP.NET Core 应用部署的 Visual Studio 发布配置文件 (.pubxml) 和使用 MSBuild 和 Team Foundation Build 一书。
通过发布 Web 功能或内置 Git 支持,可以将应用从 Visual Studio 直接部署到 Azure 应用服务。Azure DevOps Services 支持对 Azure 应用服务进行持续部署。有关详细信息,请参阅通过 ASP.NET Core 和 Azure 实现 DevOps。
发布到 AzurePublish to Azure
有关如何使用 Visual Studio 将应用发布到 Azure 的说明,请参阅 使用 Visual Studio 将 ASP.NET Core 应用发布到 Azure。在 Azure 中创建 ASP.NET Core Web 应用提供了其他示例。
在 Windows 中使用 MSDeploy 发布Publish with MSDeploy on Windows
请参阅 用于 ASP.NET Core 应用部署的 Visual Studio 发布配置文件 (.pubxml),了解如何使用 Visual Studio 发布配置文件发布应用,其中包括在 Windows 命令提示符处使用 dotnet msbuild 命令。
Internet 信息服务 (IIS)Internet Information Services (IIS)
要使用 web.config 文件提供的配置部署到 Internet Information Services (IIS),请参阅 使用 IIS 在 Windows 上托管 ASP.NET Core 下的文章 。
在 Web 场中托管Host in a web farm
有关如何配置在 Web 场环境中托管 ASP.NET Core 应用(例如,部署应用的多个实例以实现可伸缩性)的信息,请参阅 在 Web 场中托管 ASP.NET Core。
在 Docker 中托管Host on Docker
有关详细信息,请参阅 在 Docker 容器中托管 ASP.NET Core。
执行运行状况检查Perform health checks
使用运行状况检查中间件,对应用及其依赖项执行运行状况检查。有关详细信息,请参阅 ASP.NET Core 中的运行状况检查。
其他资源Additional resources
一般而言,向托管环境部署 ASP.NET Core 应用需执行以下操作:
- 将已发布应用部署到托管服务器上的文件夹。
- 设置进程管理器,该管理器在收到请求时启动应用,并在应用发生故障或服务器重启后重新启动应用。
- 对于反向代理配置,将反向代理设置为将请求转发到应用。
发布到文件夹Publish to a folder
dotnet publish 命令编译应用代码,并复制在“发布” 文件夹中运行应用所需的文件。使用 Visual Studio 进行部署时,自动先执行 dotnet publish
步骤,再将文件复制到部署目标。
文件夹内容Folder contents
“发布” 文件夹包含一个或多个应用程序集文件、依赖项以及(可选).NET 运行时。
.NET Core 应用可以发布为“独立式部署” ,也可以发布为“依赖框架的部署” 。如果应用是独立式,“发布” 文件夹中有包含 .NET 运行时的程序集文件。如果应用依赖于框架,.NET 运行时文件就不包含在内,因为应用包含对服务器上安装的 .NET 版本的引用。默认部署模型是依赖于框架的模型。有关详细信息,请参阅 .NET Core 应用程序部署。
除了“.exe” 和“.dll” 文件以外,ASP.NET Core 应用的“发布” 文件夹通常包含配置文件、静态资产和 MVC 视图。有关详细信息,请参阅 ASP.NET Core 目录结构。
设置进程管理器Set up a process manager
ASP.NET Core 应用是一个控制台应用,在服务器启动时必须启动该应用,并且在出现故障后必须重新启动它。若要自动启动和重新启动,需要使用进程管理器。用于 ASP.NET Core 的最常见进程管理器是:
- Linux
- Windows
设置反向代理Set up a reverse proxy
如果应用使用 Kestrel 服务器,Nginx、Apache 或 IIS 可用作反向代理服务器。反向代理服务器接收来自 Internet 的 HTTP 请求,并将这些请求转发到 Kestrel。
无论配置是否使用反向代理服务器,都是受支持的托管配置。有关详细信息,请参阅何时结合使用 Kestrel 和反向代理。
代理服务器和负载均衡器方案Proxy server and load balancer scenarios
对于托管在代理服务器和负载均衡器后方的应用,可能需要附加配置。如不提供附加配置,应用可能无法访问方案 (HTTP/HTTPS) 和发出请求的远程 IP 地址。有关详细信息,请参阅配置 ASP.NET Core 以使用代理服务器和负载均衡器。
使用 Visual Studio 和 MSBuild 自动执行部署Use Visual Studio and MSBuild to automate deployments
除将输出从 dotnet publish 复制到服务器外,部署通常还需要其他任务。例如,可能需要从“发布” 文件夹获取或排除额外文件。Visual Studio 使用 MSBuild 进行 Web 部署,用户可以自定义 MSBuild 以在部署期间执行其他任务。有关详细信息,请参阅 用于 ASP.NET Core 应用部署的 Visual Studio 发布配置文件 (.pubxml) 和使用 MSBuild 和 Team Foundation Build 一书。
通过发布 Web 功能或内置 Git 支持,可以将应用从 Visual Studio 直接部署到 Azure 应用服务。Azure DevOps Services 支持对 Azure 应用服务进行持续部署。有关详细信息,请参阅通过 ASP.NET Core 和 Azure 实现 DevOps。
发布到 AzurePublish to Azure
有关如何使用 Visual Studio 将应用发布到 Azure 的说明,请参阅 使用 Visual Studio 将 ASP.NET Core 应用发布到 Azure。在 Azure 中创建 ASP.NET Core Web 应用提供了其他示例。
在 Windows 中使用 MSDeploy 发布Publish with MSDeploy on Windows
请参阅 用于 ASP.NET Core 应用部署的 Visual Studio 发布配置文件 (.pubxml),了解如何使用 Visual Studio 发布配置文件发布应用,其中包括在 Windows 命令提示符处使用 dotnet msbuild 命令。
Internet 信息服务 (IIS)Internet Information Services (IIS)
要使用 web.config 文件提供的配置部署到 Internet Information Services (IIS),请参阅 使用 IIS 在 Windows 上托管 ASP.NET Core 下的文章 。
在 Web 场中托管Host in a web farm
有关如何配置在 Web 场环境中托管 ASP.NET Core 应用(例如,部署应用的多个实例以实现可伸缩性)的信息,请参阅 在 Web 场中托管 ASP.NET Core。
在 Docker 中托管Host on Docker
有关详细信息,请参阅 在 Docker 容器中托管 ASP.NET Core。