【问题标题】:ASP.NET Debug hangs after Rebuild重建后 ASP.NET 调试挂起
【发布时间】:2016-03-08 07:11:38
【问题描述】:

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

行为:

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

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

    '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 安装上运行修复
  • 删除/重新安装 ASP.NET 5 RC1-Update 1
  • 已删除 .suo 文件、.vs 文件夹、IIS 临时文件
  • 让同事在她的机器上重现,同样的行为
  • 未经调试运行,行为相同

    任何线索将不胜感激!

  • 【问题讨论】:

    • 您是否在应用程序中自己启动任何线程?
    • 不,我没有明确启动任何线程。我感觉我的任何代码都没有机会执行,因为 IIS 甚至从未完成初始化。

    标签: asp.net debugging visual-studio-2015 iis-express


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多