如何禁用ASP.NET Core的IIS Express启动配置文件?

Joe*_*ite 21 .net visual-studio-2015 asp.net-core

我正在编写一个使用WebListener而不是Kestrel 的ASP.NET核心应用程序(在完整的.NET Framework上).我正在使用Visual Studio 2015和Update 3,以及".NET Core 1.0.1工具预览2" (截至本文撰写时,下载网站上的最新VS工具).

因为我正在使用WebListener,并且因为WebListener与IIS Express不兼容,所以我想在Visual Studio中禁用"IIS Express"启动配置文件,这样当我的队友打开此解决方案时,他们的Visual Studio将默认运行控制台应用程序而不是IIS Express,他们只能点击运行而不会出错.

但到目前为止,我还没有能够摆脱VS的"IIS Express"发布配置文件.项目属性>调试选项卡允许我编辑配置文件列表,但是当我选择"IIS Express"配置文件时,"删除"按钮被禁用.如果我直接编辑launchSettings.json,并从"profiles"下删除"IIS Express"元素,则File> Save操作会以静默方式将"IIS Express"配置文件插回到保存到磁盘的JSON中!

显然,Microsoft 确实希望始终拥有"IIS Express"启动配置文件,即使它不一定与所有ASP.NET Core项目兼容.但值得一提的是:有没有人找到一种方法来禁用 ASP.NET Core项目中的"IIS Express"启动配置文件,并且只有启动配置文件选择器中的自主选项?

¹对于好奇的人,我正在使用WebListener,因为它可以让我在没有安装IIS的计算机上自行托管Windows服务并仍然支持NTLM身份验证.Kestrel仅在IIS中托管时支持NTLM,而不是在自托管时支持NTLM.

ssm*_*ith 1

只需从项目属性下的 launchSettings.json 文件中删除 IIS Express 选项就足够了吗?

删除红框中的东西: 在此输入图像描述

现在应该只出现另一个配置文件: 在此输入图像描述

请注意,我使用的是 VS2017 RC。您遇到的可能是 VS2015 中的错误。您可以尝试使用单独的文本编辑器编辑并保存 launchSettings.json 文件,看看这是否适合您。不过,我可以确认这在 VS2017 RC 中工作得很好。

  • 所以今天我重新打开了该项目,VS 2017 更新了 launchSettings.json 以将其添加回来。显然它是在项目加载时执行的。 (7认同)
  • +1 对于 launchSettings.json,会在设置下自动重新添加 IIS Express。当我们有“多个启动项目”并且您单击“开始”时,我无法找到一种方法来确保 kestrel 打开(而不是选择 IIS Express、Kestrel 等)。 (3认同)
  • @ssmith,您可能需要更新答案以表明该解决方案在重新加载后不起作用 (2认同)