从ASP.NET黄色错误页面直接链接到VS源代码

从ASP.NET黄色错误页面直接链接到VS源代码

Link from ASP.NET yellow error page directly to VS source code

当 ASP.NET 应用程序出错并生成黄屏显示时,我想从错误页面创建某种链接,该链接将直接跳转到 Visual Studio 中的正确代码行。

我不知道如何解决这个问题,或者是否已经存在任何工具来完成它 - 但我希望能得到一些关于从哪里开始的反馈。

如果需要生成新的错误页面,是否可以在整个网络服务器上替换标准的黄屏,而不必为每个应用程序配置自定义的错误输出?


您可能需要在页面中嵌入 ActiveX 控件才能实现类似的功能。


不要忘记您需要程序调试数据库 (pdb) 文件来查找源代码行号。处于发布模式的应用程序不会拥有与调试版本相同级别的信息。


The yellow screen of death is just a 500 error as far as the server is concerned, you can redirect to a custom screen using the error section of the web.config. To make a whole server change in the same manner you could probably override it at the iis level? Or perhaps even set the default behaviour in the machine.config file (not 100% sure about that one though)

如果您让它一直冒泡到 IIS,您将无法访问异常信息。最好在 YSOD 之前捕获异常并为您自己服务。

这可以在应用程序级别完成。


就服务器而言,黄屏死机只是一个 500 错误,您可以使用 web.config 的错误部分重定向到自定义屏幕。要以相同的方式更改整个服务器,您可能可以在 iis 级别覆盖它?或者甚至可以在 machine.config 文件中设置默认行为(虽然不是 100% 确定)


黄屏死机由默认的 ASP.NET HTTPHandler 提供服务。

为了拦截它,你需要在它前面添加另一个 HTTPHandler 来拦截所有未捕获的异常。

那时,你可以为你的错误布局做任何你想做的事情。

创建一种直接跳转到 Visual Studio 的方法会很棘手。我可以通过 COM/ActiveX 对象在 IE 中看到它。


我能想到的最简单、最懒惰的事情就是让这个过程就这样发生:

  • 黄屏被修改,所以源代码行是可点击的。单击时,它会提供一个带有源文件名和行号的小文本文件。
  • PC上的一个小程序是绑定到黄屏让你下载的小文件的扩展名。该程序使用 Visual Studio 的可扩展性模型打开源文件并转到该行。该程序可能需要知道您的源代码在哪里。
  • 一个简单的谷歌搜索
    提供有关如何使用外部程序操作 VS 的有用指示,例如 MSDN 上的这篇文章。

    如果你想变得更时髦,那么当然还有其他方法,但我宁愿写一个快速而肮脏的程序,然后把它移开,这样我就可以做我的事了。

    不要让工具变成项目...

    -亚当


    推荐阅读