IIS中的调试提供了更平滑的开发过程,无需考虑您的Web服务器是否正在运行。
我已经使用ASP.NET核心了一段时间,并且总是错过了Visual Studio中的直接IIS支持。必须记住启动项目才能启动IIS Express,这有点令人讨厌。在开发软件时,我们希望实际的调试和运行过程尽可能自动化,而使用IIS Express,它们根本不是。
简单地启动浏览器并立即调试JavaScript要快得多,而无需确保IIS Express站点实际运行。并且,无需启动和停止您的网站,使开发更快。
从本质上讲,目标是让您的Web服务器全天候运行,而不必三思而后行。因此,第一步是在您的开发机器上实际启用IIS:
启用IIS
- 导航到 控制面板 > 程序 > 程序和功能 > 打开或关闭Windows功能 (屏幕左侧)。
- 选中“ Internet信息服务” 复选框:
下一步是配置IIS并确保您具有SSL证书设置,以便在浏览器中安全地运行您的站点。如果您之前已经安装过IIS,只需在默认网站上添加HTTPS绑定以允许https
配置IIS
新网站的 主机名设置为“localhost”(启动配置文件也将在Visual Studio中使用“localhost”)。端口设置为“443”(HTTPS)。在 IIS Express开发证书分配给网站,但任何有效证书都有效:
前两个步骤很简单,无论您在应用程序中使用.NET框架还是.NET核心,都是一样的。我已经设法使用Visual Studio 2017使用IIS进行调试。因此,我强烈建议您安装Visual Studio 2017(如果尚未安装)。
接下来,我们必须在Visual Studio中启用开发时IIS支持:
在Visual Studio 2017中启用开发时IIS支持
- 启动Visual Studio安装程序。
- 选择 开发时间IIS支持 组件。该组件在ASP.NET和Web开发工作负载的“摘要”面板中列为可选项。该组件安装 ASP.NET核心模块,这是使用IIS运行ASP.NET核心应用程序所需的本机IIS模块:
现在,我们终于可以在VS2017中创建一个新的ASP.NET Core应用程序。好吧,还没有!我曾经访问过微软和其他开发人员的几篇文章,但他们都缺少关键组件:ASP.NET Core 2.2。不要使用2.1或任何其他版本。在没有2.2的情况下,我实际上无法在IIS中进行应用程序调试。但是,这是我写这样一篇文章的主要原因。我没有通过其他文章,也没有删除它,而是从他们身上学到了什么,并写了一篇更好的文章,实际上让开发人员无需了解重要信息。
您可以在此处下载.NET core 2.2:https://dotnet.microsoft.com/download/dotnet-core/2.2
现在,您已经安装了.NET核心SDK 2.2,我们最终可以创建一个新项目:
创建新的ASP.NET Core 2.2项目
确保在创建新项目时选中“配置HTTPS ”复选框:
接下来,我们需要在新项目中配置调试选项卡。这涉及设置启动配置文件以正确启动IIS:
IIS启动配置文件
创建新的启动配置文件以添加开发时IIS支持:
- 对于Profile,选择New按钮。在弹出窗口中将配置文件命名为“IIS”。选择“确定”以创建配置文件。
- 对于“启动”设置,从列表中选择“IIS”。
- 选中“启动浏览器”复选框并提供端点URL。使用HTTPS协议。此示例使用https:// localhost/TestIISWithCore。
- 在“环境变量”部分中,选择“添加”按钮。提供名称为ASPNETCORE_ENVIRONMENT且值为Development的环境变量。
- 在“Web服务器设置”区域中,设置应用程序URL。将其设置为与您在步骤3中输入的URL相同。
- 保存配置文件:
您现在应该能够使用IIS调试您的应用程序。确保将构建配置设置为Debug,将配置文件设置为IIS。然后单击“运行”按钮以启动应用程序:
你完成了。您现在可以在IIS中正式调试ASP.NET Core应用程序。当然,这仍然是个人喜好的问题,我总是喜欢在IIS中调试我的应用程序而不是在IIS Express中。
原文地址:https://www.codeproject.com/Articles/1273958/Debugging-ASP-NET-Core-applications-within-IIS