IISExpress连接失败导致灾难性故障

10

我遇到了这样的问题,当我试图将调试器附加到IIS Express时,它会失败并显示“无法附加到进程。灾难性故障"。然后它会结束我的IIS Express会话。我不知道从何开始调试此问题。

导致此问题的步骤如下:

  1. 我的应用程序存在于本地机器上
  2. Documents\IISExpress\config\applicationhost.config已设置站点
  3. 我通过转到C:\Program Files\IIS Express\iisexpress.exe以管理员控制台模式运行IIS Express
  4. 我在VS中加载我的解决方案。
  5. 我试图将调试器附加到IIS Express。
  6. 我收到灾难性失败错误。
  7. IIS被终止并停止。

有没有想法去查看Visual Studio日志以查看可能发生了什么?我尝试使用/ log选项运行devenv.exe,但它没有帮助任何错误。

我还查看了IIS日志,但没有异常指向灾难性故障。


看这个 https://dzone.com/articles/catastrophic-failure-when ,说:“更改项目设置以启用编辑和继续,然后按F5以调试模式启动Web项目。” - Aristos
我尝试过了,但仍然失败。我不能完全做同样的事情(按F5),因为网站启动时会发生其他事情。 - Sirpingalot
3个回答

10

您是否在同一个应用程序池内运行多个站点? 我曾遇到过同样的问题,我相信将应用站点分开放入不同的应用程序池中可以解决这个问题。

此外,在 Visual Studio 中选择错误的启动项目时,我也遇到了问题。请确保在附加之前选择正确的启动项目,虽然我不明白为什么这很重要。

另外,我创建了一个控制器,用于从应用程序启动调试器,这不仅使它更容易,而且似乎问题较少。

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

3
我曾遇到启动了错误的项目的问题。修复后,我不再遭遇“灾难性故障”。 - dbruning
3
太棒了!看起来错的创业项目是问题所在。更改后,问题对我来说似乎已解决! :) - Sirpingalot
1
哇,那个起作用了!我本来不相信启动项目与“附加到进程”有任何关系,但显然它确实有。 - Mikl X
1
将启动项目固定即可解决此问题。谢谢! - Ehsan Sajjad

0

从一点儿试玩来看,问题似乎是在以下情况下附加到IISExpress进程时出现:

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

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

  • IISExpress进程将被重新启动,并终止从管理员控制台运行的实例
  • 您将看到"Catastrophic failure"消息

然后,您可以在刷新进程列表后重新附加到新的IIS Express进程。

为避免这种情况,您可以选择:

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

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


0

如果有人遇到同样的问题,我曾经遇到过这种奇怪的行为,当我将另一个项目设置为启动项目而不是运行在我正在附加的IISExpress处理上时。所以只需将您的项目更改为启动并附加到进程即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接