连接到IISExpress的灾难性故障

时间:2016-05-11 16:04:11

标签: c# asp.net visual-studio debugging iis

我遇到了一个问题,当我尝试将我的调试器连接到IIS Express时,它失败并显示“无法连接到进程。灾难性故障”。然后它会终止我的IIS Express会话。我不知道从哪里开始调试此问题。

导致这一点的步骤:

  1. 我的应用程序存在于我的本地计算机上
  2. Documents \ IISExpress \ config \ applicationhost.config已设置站点
  3. 我通过管理控制台模式运行IIS express,转到C:\ Program Files \ IIS Express \ iisexpress.exe
  4. 我在VS中加载我的解决方案。
  5. 我尝试将调试器附加到IIS Express。
  6. 我遇到了灾难性的失败错误。
  7. IIS被终止并停止。
  8. 想知道Visual Studio日志的去向,看看可能发生了什么?我尝试使用/ log选项运行devenv.exe,但它对任何错误没有帮助。

    我也查了一下IIS日志,但没有任何异常指向灾难性的失败。

3 个答案:

答案 0 :(得分:8)

您是否在同一个应用程序池中运行多个站点? 我遇到了同样的问题,并认为将应用程序站点分成不同的应用程序池可以解决问题。

此外,我在Visual Studio中选择了错误的启动项目时遇到了问题。确保在连接之前选择了正确的启动项目,但我不明白这为什么重要。

此外,我还为应用程序启动调试器创建了一个控制器,这不仅使其更容易,而且似乎也没有问题。

    #if DEBUG
    public virtual ActionResult Attach()
    {
        System.Diagnostics.Debugger.Launch();
        return new EmptyResult();
    }
    #endif 

答案 1 :(得分:0)

从一点点看来,问题出在以下情况时是附加到IISExpress进程上的:

  • IIS Express已通过管理控制台运行,并且
  • 您没有被提名为启动项目的相关IIS Express项目,并且
  • 将“ IIS Express”配置为启动服务器(而不是“外部工具”)

如果发生这种情况,那么对于未配置为启动项目的每个IIS Express进程:

  • IISExpress进程将重新启动,并且从管理控制台运行的实例将终止
  • 您将看到“灾难性故障”消息

然后,您可以在那时重新连接(在刷新进程列表之后)到新的IIS Express进程。

要避免这种舞蹈,您可以:

  • 将IISExpress项目指定为启动项目,或
  • 将启动操作更改为“外部工具”。

然后,您可以附加到从管理控制台运行的实例,而不会影响它们。

答案 2 :(得分:0)

以防万一有人遇到相同的问题,当我在应用程序中将另一个项目设置为启动项目而不是在要附加的IISExpress处理上运行时,我确实看到了这种奇怪的行为,因此只需更改您的项目即可开始和Attach to Process