我正在写一个使用WebListener而不是Kestrel的ASP.NET Core应用程序(在完整的.NET Framework上).¹我正在使用Visual Studio 2015和Update 3,以及“.NET Core 1.0.1工具预览2“(截至撰写本文时为download site上的最新VS工具)。如何禁用ASP.NET Core的IIS Express启动配置文件?
因为我使用的是WebListener,并且因为WebListener is not compatible with IIS Express,我想在Visual Studio中禁用“IIS Express”启动配置文件,所以当我的队友打开这个解决方案时,他们的Visual Studios将默认运行控制台应用程序而不是IIS Express,他们将能够运行并且不会出错。
但到目前为止,我还没有能够摆脱VS的“IIS Express”启动配置文件。 “项目属性”>“调试”选项卡允许我编辑配置文件列表,但是当选择“IIS Express”配置文件时,“删除”按钮将被禁用。如果我直接编辑launchSettings.json,并从“配置文件”下删除“IIS Express”元素,则文件>保存操作会自动将“IIS Express”配置文件插入保存到磁盘的JSON中!
显然微软确实想要始终拥有“IIS Express”启动配置文件,即使它不一定与所有ASP.NET Core项目兼容。但值得问一下:有没有人找到一种方法来禁用ASP.NET Core项目中的“IIS Express”启动配置文件,并且只有启动配置文件选择器中的自主主机选项?
¹对于好奇心,我使用WebListener,因为它使我能够在Windows服务中自主宿主,并且仍然支持NTLM身份验证,而无需安装IIS。当托管在IIS中时,Kestrel只支持NTLM,而不是在托管时。
它是否真的以这种方式保存文件?在VS2015中,当我点击保存时,*实际被写入磁盘*的文件将IIS Express配置文件重新添加回来。不过,除非关闭并重新打开文件,否则不会在IDE中看到此更改,或者打开它在外部编辑器中。 –
刚刚确认。它确实如图所示保存它。关闭并重新打开文件(以VS或其他方式)显示它保存为人们所期望的。 – ssmith
好的,很酷。我想知道他们是否发现了一些VS2015没有IIS Express的情况下无法有效工作的情况,并且增强了VS2017以涵盖该场景(并且在2015年强制IIS Express选项,但不是2017年)。如果你编辑你的答案,放在“它在VS2017中起作用,肯定是VS2015的东西”,那么我会很乐意接受你的答案。 –