ASP.NET 重建后调试挂起

ASP.NET Debug hangs after Rebuild

我有一个奇怪的问题 - 当 运行 在我的 MVC 5 应用程序上进行调试会话时,该应用程序从未在浏览器中加载。在执行任何代码之前,系统会无限循环通过 VS 中的错误。它似乎在 IIS 快速初始化(加载其库)期间挂起。这是我目前所知道的:

行为:

  • 首次启动 VS 2015 时,应用程序运行良好。
  • 更改一两行代码后 - javascript,C# 无关紧要,触发重新构建的任何内容 - 它不再会在调试器中启动。即使改回以撤消您的代码更改,也不会恢复。
  • 只有重新启动 VS 2015 才能恢复。
  • 我的应用程序是 MVC 5,没有在我的应用程序中使用任何 vNext 东西,但是我确实安装了 ASP.NET 5 RC1-Update 1。我正在使用 Typescript 和 .scss 文件。

    在输出 window 中,我看到以下日志信息:

    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Cannot find or open the PDB file.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.ApplicationServices\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.ApplicationServices.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Caching\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Runtime.Caching.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Build.Utilities.v4.0\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Utilities.v4.0.dll'. Cannot find or open the PDB file.
    'iisexpress.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.RegularExpressions\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.RegularExpressions.dll'. Cannot find or open the PDB file.
    'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/3/ROOT-3-131015937881507859): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Cannot find or open the PDB file.
    The thread 0x21ec has exited with code 0 (0x0).
    Exception thrown: 'System.CannotUnloadAppDomainException' in Unknown Module.
    Exception thrown: 'System.CannotUnloadAppDomainException' in Unknown Module.
    

    最后一个错误一遍又一遍地重复,穿插在线程退出消息中。在成功启动调试会话的情况下,此日志输出开始时相同,但在加载 mscorlib 之后立即是这些行:

    /ROOT-1-131015945372332716): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/3/ROOT-1-131015945372332716): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/3/ROOT-1-131015945372332716): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Symbols loaded.
    'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/3/ROOT-1-131015945372332716): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.ApplicationServices\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.ApplicationServices.dll'. Symbols loaded.
    

    (在成功的会话中,在这些之后还有许多其他行我没有显示)

    这让我相信可能有什么东西阻止了 System.Web 的加载,或者 mscorlib 的加载出了问题。

    这是我尝试过的方法:

  • 在调试运行之间终止并重新启动 IIS Express - 在终止 IIS Express 并再次按下 F5 后,进程在 IIS exp 重新启动之前挂起。
  • 卸载,重新安装 IIS Express 10
  • 禁用了多个 VS 扩展
  • 运行 修复我的 .NET Framework 4.6.1 安装
  • Removed/Re-installed ASP.NET 5 RC1-更新 1
  • 已删除 .suo 文件、.vs 文件夹、IIS 临时文件
  • 让同事在她的机器上重现,同样的行为
  • 运行 没有调试,同样的行为

    任何线索将不胜感激!

  • 好吧,经过一番摸索,这个问题原来与 Application Insights 有关。几个月前,我在应用程序中添加了 AI,没有任何问题。但最近访问我的 Azure 门户时出现问题(我认为是公司防火墙问题),这导致 AI 无法正确登录或访问其 Web 组件。我的理论是,在第一次 运行 应用程序时,一切都很好,但在后台,AI 组件正在努力连接。然后当应用程序关闭时,组件无法正确卸载,因为它们挂在连接上。然后在第二个 运行 时(仅当我出于某种原因重建时),应用程序的初始化由于 'System.CannotUnloadAppDomainException' 错误而失败。

    我不明白,但我确信删除所有 AI 引用已经解决了这个问题。感谢所有思考这个问题的人!