65.9K
CodeProject 正在变化。 阅读更多。
Home

在 IIS 中调试 ASP.NET Core 应用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.96/5 (11投票s)

2019年1月9日

CPOL

4分钟阅读

viewsIcon

27750

在 IIS 中进行调试可以提供更流畅的开发过程,而无需考虑您的 Web 服务器是否正在运行。

引言

我使用 ASP.NET Core 已经有一段时间了,并且一直很怀念 Visual Studio 中直接支持 IIS。 必须记住启动项目才能启动 IIS Express 确实有点麻烦。 在开发软件时,我们希望实际的调试和运行过程尽可能自动化,但使用 IIS express 它们根本不是这样的。

只需启动浏览器并立即调试 JavaScript 更快,无需额外步骤来确保 IIS Express 站点实际运行。 并且,无需启动和停止您的网站,这使开发更加快捷。

本质上,目标是让您的 Web 服务器 24/7 运行,无需三思。 因此,第一步实际上是在您的开发机器上启用 IIS

启用 IIS

  1. 导航到 控制面板 > 程序 > 程序和功能 > 打开或关闭 Windows 功能(屏幕左侧)。
  2. 选择 Internet Information Services 复选框

下一步是配置 IIS 并确保您已设置 SSL 证书,以便在浏览器中安全地运行您的网站。 如果您之前已经安装了 IIS,只需向您的默认网站添加 HTTPS 绑定即可在 https 上运行。

配置 IIS

我们新网站的 主机名 设置为“localhost”(启动配置文件也将在 Visual Studio 中使用“localhost”)。 端口设置为“443”(HTTPS)。 IIS Express 开发证书已分配给网站,但任何有效的证书都可以使用

前 2 个步骤很简单,并且无论您在应用程序中使用 .NET Framework 还是 .NET Core,都相同。 我已经设法使用 Visual Studio 2017 在 IIS 中进行调试。 因此,我强烈建议您安装 Visual Studio 2017,如果您尚未安装的话。

接下来,我们必须在 Visual Studio 中启用开发时 IIS 支持

在 Visual Studio 2017 中启用开发时 IIS 支持

  1. 启动 Visual Studio 安装程序。
  2. 选择 开发时 IIS 支持 组件。 该组件在 ASP.NET 和 Web 开发 工作负载的 摘要 面板中被列为可选组件。 该组件安装了 ASP.NET Core 模块,这是一个运行 ASP.NET Core 应用程序需要使用 IIS 的本机 IIS 模块

现在,我们终于可以在 VS2017 中创建一个新的 ASP.NET Core 应用程序了。 好吧,还差一点! 我阅读了几篇文章,既有来自微软的,也有来自其他开发者的,但它们都缺少关键组件:ASP.NET Core 2.2。 不要使用 2.1 或任何其他版本。 如果没有 2.2,我实际上无法在 IIS 中调试我的应用程序。 但这就是我写这篇文章的主要原因。 我不会照搬其他文章,因为它们解决不了问题,而是从中学习,并创建一篇更好的文章,实际上可以让开发者达到他们需要的地方,而不会遗漏重要信息。

现在您已经安装了 .NET core SDK 2.2,我们终于可以创建一个新项目了

创建新的 ASP.NET Core 2.2 项目。

创建新项目时,请务必选中复选框以 配置 HTTPS

接下来,我们需要配置新项目中的“调试”选项卡。 这涉及设置一个启动配置文件以正确启动 IIS

IIS 启动配置文件

创建一个新的启动配置文件以添加开发时 IIS 支持

  1. 对于 配置文件,选择 新建 按钮。 在弹出窗口中将配置文件命名为“IIS”。 选择 确定 以创建配置文件。
  2. 对于 启动 设置,从列表中选择 IIS
  3. 选中 启动浏览器 复选框并提供端点 URL。 使用 HTTPS 协议。 此示例使用 https:///TestIISWithCore
  4. 环境变量 部分,选择 添加 按钮。 提供一个名为 ASPNETCORE_ENVIRONMENT 且值为 Development 的环境变量。
  5. Web 服务器设置 区域中,设置 应用 URL。 将其设置为您在步骤 3 中输入的 URL。
  6. 保存配置文件

您现在应该能够使用 IIS 调试您的应用程序了。 确保将您的构建配置设置为 Debug,并将配置文件设置为 IIS。 然后单击运行按钮启动您的应用程序

就是这样! 您现在可以正式在 IIS 中调试您的 ASP.NET Core 应用程序了。 当然,这仍然是个人的偏好问题,我总是更喜欢在 IIS 中而不是 IIS Express 中调试我的应用程序。

© . All rights reserved.