- 将 ASP.NET Core 应用发布到 IISPublish an ASP.NET Core app to IIS
- 先决条件Prerequisites
- 安装 .NET Core 托管捆绑包Install the .NET Core Hosting Bundle
- 创建 IIS 站点Create the IIS site
- 创建 ASP.NET Core Razor Pages 应用Create an ASP.NET Core Razor Pages app
- 发布和部署应用Publish and deploy the app
- 浏览网站Browse the website
- 后续步骤Next steps
- 其他资源Additional resources
将 ASP.NET Core 应用发布到 IISPublish an ASP.NET Core app to IIS
本文内容
本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用。
本教程涵盖以下主题:
- 在 Windows Server 上安装.NET Core Hosting Bundle。
- 在 IIS 管理器中创建 IIS 站点。
- 部署 ASP.NET Core 应用。
先决条件Prerequisites
- .NET Core SDK 安装在开发计算机上。
- Windows Server 配置了“Web 服务器 (IIS)”服务器角色 。如果服务器未配置为托管具有 IIS 的网站,请按照 使用 IIS 在 Windows 上托管 ASP.NET Core 文章中“IIS 配置”部分的指南操作,然后返回本教程 。
警告
IIS 配置和网站安全涉及到本教程未介绍的概念。 在 IIS 上托管生产应用之前,请先参阅 Microsoft IIS 文档中的 IIS 指南和有关使用 IIS 进行托管的 ASP.NET Core 文章。
本教程未介绍的 IIS 托管的重要方案包括:
- 为 ASP.NET Core 数据保护创建注册表配置单元
- 配置应用池的访问控制列表 (ACL)
- 为了重点介绍 IIS 部署概念,本教程部署了一个没有在 IIS 中配置 HTTPS 安全性的应用。有关托管为 HTTPS 协议启用的应用的详细信息,请参阅本文其他资源部分中的安全主题。有关托管 ASP.NET 核心应用的更多指南,请参阅 使用 IIS 在 Windows 上托管 ASP.NET Core 文章。
安装 .NET Core 托管捆绑包Install the .NET Core Hosting Bundle
在 IIS 服务器上安装 .NET Core 托管捆绑包 。捆绑包可安装 .NET Core 运行时、.NET Core 库和 ASP.NET Core 模块。该模块允许 ASP.NET Core 应用在 IIS 后面运行。
使用以下链接下载安装程序:
在 IIS 服务器上运行安装程序。
重启服务器或在命令行界面中执行 net stop was /y,后跟 net start w3svc 。
创建 IIS 站点Create the IIS site
在 IIS 服务器上,创建一个文件夹以包含应用已发布的文件夹和文件。在接下来的步骤中,文件夹路径作为应用程序的物理路径提供给 IIS。
在 IIS 管理器中,打开“连接” 面板中的服务器节点。右键单击“站点” 文件夹。选择上下文菜单中的“添加网站” 。
提供网站名称,并将“物理路径”设置为所创建应用的部署文件夹 。提供“绑定”配置,并通过选择“确定”创建网站 。
创建 ASP.NET Core Razor Pages 应用Create an ASP.NET Core Razor Pages app
按照 ASP.NET Core 入门 教程创建 Razor Pages 应用。
发布和部署应用Publish and deploy the app
发布应用意味着生成可由服务器托管的编译应用 。部署应用意味着将发布的应用移动到托管系统 。发布步骤由 .NET Core SDK 处理,而部署步骤可以通过各种方法处理。本教程采用“文件夹”部署方法,即 :
- 将应用发布到一个文件夹。
- 文件夹的内容将移动到 IIS 站点的文件夹(IIS 管理器中站点的物理路径) 。
- 在“解决方案资源管理器” 中右键单击该项目,然后选择“发布” 。
- 在“选择发布目标”对话框中,选择“文件夹”发布选项 。
- 设置“文件夹或文件共享”路径 。
- 如果为开发计算机上可用作网络共享的 IIS 站点创建了一个文件夹,请提供该共享的路径。当前用户必须具有写入权限才能发布到共享。
- 如果无法直接部署到 IIS 服务器上的 IIS 站点文件夹,请发布到可移动介质上的文件夹,并将已发布的应用物理移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。将 bin/Release/{TARGET FRAMEWORK}/publish 文件夹的内容移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。
- 在命令 shell 中,使用 dotnet publish 命令在发布配置中发布应用:
dotnet publish --configuration Release
- 将 bin/Release/{TARGET FRAMEWORK}/publish 文件夹的内容移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。
- 右键单击“解决方案”中的项目,然后选择“发布” > “发布到文件夹” 。
- 设置“选择文件夹”路径 。
- 如果为开发计算机上可用作网络共享的 IIS 站点创建了一个文件夹,请提供该共享的路径。当前用户必须具有写入权限才能发布到共享。
- 如果无法直接部署到 IIS 服务器上的 IIS 站点文件夹,请发布到可移动介质上的文件夹,并将已发布的应用物理移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。将 bin/Release/{TARGET FRAMEWORK}/publish 文件夹的内容移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。
浏览网站Browse the website
应用收到第一个请求后,可以在浏览器中访问该应用。在站点的 IIS 管理器中创建的终结点绑定上发出对应用的请求。
后续步骤Next steps
在本教程中,你将了解:
- 在 Windows Server 上安装.NET Core Hosting Bundle。
- 在 IIS 管理器中创建 IIS 站点。
- 部署 ASP.NET Core 应用。
若要了解有关在 IIS 上托管 ASP.NET Core 应用的详细信息,请参阅 IIS 概述文章:
使用 IIS 在 Windows 上托管 ASP.NET Core
其他资源Additional resources
ASP.NET Core 文档集中的文章Articles in the ASP.NET Core documentation set
有关 ASP.NET Core 应用部署的文章Articles pertaining to ASP.NET Core app deployment
- 使用 Visual Studio 将 ASP.NET Core 应用发布到 Azure
- 使用 Visual Studio Code 将 ASP.NET Core 应用发布到 Azure
- 用于 ASP.NET Core 应用部署的 Visual Studio 发布配置文件 (.pubxml)
- 使用 Visual Studio for Mac 将 Web 应用发布到文件夹