我已经搜索(搜索引擎优化和其他Google搜索),但是找不到能解决此问题的任何东西。
我的解决方案包含多个项目:一些库,MVC应用程序,WebAPI。这个问题开始出现在一些新创建的WebAPI项目中,只有18个项目中有2个。
每当我更改代码并尝试在Visual Studio(本地IIS)中运行调试器时,都会收到以下错误消息:
无法在Web服务器上开始调试。底层连接 已关闭:预期保持活动状态的连接已关闭 由服务器
如果我在该错误消息上单击OK
并再次开始调试,则它可以正常工作。因此,基本上总是需要2次尝试才能使调试器以最新的代码运行。
该应用程序使用大多数默认设置在IIS中的默认网站和应用程序池下运行。解决方案中的所有内容都针对.net461。VisualStudio 2017是最新版本(15.7.6),并且我还安装了最新的.NET框架。 VS以管理员身份运行。
该问题似乎不是由本地设置引起的,因为其他人运行此解决方案并尝试调试存在此问题的2个项目时也会发生此问题。
有什么办法可以进一步调试并弄清楚为什么会发生这种情况?
编辑:取得了一些进展,该问题似乎是由于 Application_Start()
挂了一些东西而发生的。在每个函数调用之间添加一堆日志后,似乎原因在于WebAPI的注册,尤其是在通过Swashbuckle NuGetPackage启用Swagger时。我将保留此职位,但也会对Swashbuckle提出问题。
这是一条红色的鲱鱼,经过多次复制后,它挂在GlobalConfiguration.Configure(WebApiConfig.Register);
的末尾。
查看IIS日志,我看到很多这样的DEBUG条目:
2018-08-09 13:32:54 127.0.0.1 DEBUG /MyApp/debugattach.aspx - 80 - 127.0.0.1 - - 401 0 0 7240
config.EnsureInitialized()
似乎是挂起的可能情况之一,因为它在注册结束时执行。还不知道是可能的原因。
答案 0 :(得分:0)
以管理员模式运行Visual Studio