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

时间:2024-04-13 14:04:08

IIS中的调试提供了更平滑的开发过程,无需考虑您的Web服务器是否正在运行。

我已经使用ASP.NET核心了一段时间,并且总是错过了Visual Studio中的直接IIS支持。必须记住启动项目才能启动IIS Express,这有点令人讨厌。在开发软件时,我们希望实际的调试和运行过程尽可能自动化,而使用IIS Express,它们根本不是。

简单地启动浏览器并立即调试JavaScript要快得多,而无需确保IIS Express站点实际运行。并且,无需启动和停止您的网站,使开发更快。

从本质上讲,目标是让您的Web服务器全天候运行,而不必三思而后行。因此,第一步是在您的开发机器上实际启用IIS

启用IIS

  1. 导航到  控制面板  >  程序  >  程序和功能  >  打开或关闭Windows功能  (屏幕左侧)。
  2. 选中“  Internet信息服务  复选框:

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

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

配置IIS

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

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

前两个步骤很简单,无论您在应用程序中使用.NET框架还是.NET核心,都是一样的。我已经设法使用Visual Studio 2017使用IIS进行调试因此,我强烈建议您安装Visual Studio 2017(如果尚未安装)。

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

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

  1. 启动Visual Studio安装程序。
  2. 选择  开发时间IIS支持  组件。该组件在ASP.NETWeb开发工作负载的摘要面板中列为可选项。该组件安装 ASP.NET核心模块,这是使用IIS运行ASP.NET核心应用程序所需的本机IIS模块:

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

现在,我们终于可以在VS2017中创建一个新的ASP.NET Core应用程序。好吧,还没有!我曾经访问过微软和其他开发人员的几篇文章,但他们都缺少关键组件:ASP.NET Core 2.2。不要使用2.1或任何其他版本。在没有2.2的情况下,我实际上无法在IIS中进行应用程序调试。但是,这是我写这样一篇文章的主要原因。我没有通过其他文章,也没有删除它,而是从他们身上学到了什么,并写了一篇更好的文章,实际上让开发人员无需了解重要信息。

您可以在此处下载.NET core 2.2https//dotnet.microsoft.com/download/dotnet-core/2.2

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

创建新的ASP.NET Core 2.2项目

确保在创建新项目时选中配置HTTPS ”复选框:

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

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

IIS启动配置文件

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

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

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

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

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

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

 

原文地址:https://www.codeproject.com/Articles/1273958/Debugging-ASP-NET-Core-applications-within-IIS