将 ASP.NET Core 应用发布到 IISPublish an ASP.NET Core app to IIS
本教程涵盖以下主题:
- 在 Windows Server 上安装.NET Core Hosting Bundle。
- 在 IIS 管理器中创建 IIS 站点。
- 部署 ASP.NET Core 应用。
- .NET Core SDK 安装在开发计算机上。
- Windows Server 配置了“Web 服务器 (IIS)”服务器角色 。如果服务器未配置为托管具有 IIS 的网站,请按照 文章中“IIS 配置”部分的指南操作,然后返回本教程 。
警告
IIS 配置和网站安全涉及到本教程未介绍的概念。 在 IIS 上托管生产应用之前,请先参阅 Microsoft IIS 文档中的 IIS 指南和。
本教程未介绍的 IIS 托管的重要方案包括:
- 配置应用池的访问控制列表 (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 服务器上,创建一个文件夹以包含应用已发布的文件夹和文件。在接下来的步骤中,文件夹路径作为应用程序的物理路径提供给 IIS。
在 IIS 管理器中,打开“连接” 面板中的服务器节点。右键单击“站点” 文件夹。选择上下文菜单中的“添加网站” 。
创建 ASP.NET Core Razor Pages 应用Create an ASP.NET Core Razor Pages app
按照 教程创建 Razor Pages 应用。
发布应用意味着生成可由服务器托管的编译应用 。部署应用意味着将发布的应用移动到托管系统 。发布步骤由 .NET Core SDK 处理,而部署步骤可以通过各种方法处理。本教程采用“文件夹”部署方法,即 :
- 将应用发布到一个文件夹。
- 文件夹的内容将移动到 IIS 站点的文件夹(IIS 管理器中站点的物理路径) 。
- 在“解决方案资源管理器” 中右键单击该项目,然后选择“发布” 。
- 在“选择发布目标”对话框中,选择“文件夹”发布选项 。
- 设置“文件夹或文件共享”路径 。
- 如果为开发计算机上可用作网络共享的 IIS 站点创建了一个文件夹,请提供该共享的路径。当前用户必须具有写入权限才能发布到共享。
- 如果无法直接部署到 IIS 服务器上的 IIS 站点文件夹,请发布到可移动介质上的文件夹,并将已发布的应用物理移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。将 bin/Release/{TARGET FRAMEWORK}/publish 文件夹的内容移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。
- 在命令 shell 中,使用 dotnet publish 命令在发布配置中发布应用:
- 右键单击“解决方案”中的项目,然后选择“发布” > “发布到文件夹” 。
- 设置“选择文件夹”路径 。
- 如果为开发计算机上可用作网络共享的 IIS 站点创建了一个文件夹,请提供该共享的路径。当前用户必须具有写入权限才能发布到共享。
- 如果无法直接部署到 IIS 服务器上的 IIS 站点文件夹,请发布到可移动介质上的文件夹,并将已发布的应用物理移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。将 bin/Release/{TARGET FRAMEWORK}/publish 文件夹的内容移动到服务器上的 IIS 站点文件夹,该文件夹是该站点在 IIS 管理器中的物理路径 。
浏览网站Browse the website
应用收到第一个请求后,可以在浏览器中访问该应用。在站点的 IIS 管理器中创建的终结点绑定上发出对应用的请求。
在本教程中,你将了解:
- 在 Windows Server 上安装.NET Core Hosting Bundle。
- 在 IIS 管理器中创建 IIS 站点。
- 部署 ASP.NET Core 应用。
若要了解有关在 IIS 上托管 ASP.NET Core 应用的详细信息,请参阅 IIS 概述文章: