当 ASP.NET 应用程序出错并生成黄屏显示时,我想从错误页面创建某种链接,该链接将直接跳转到 Visual Studio 中的正确代码行。
我不确定如何解决这个问题,或者是否已经存在任何工具可以完成它 - 但我希望得到一些关于从哪里开始的反馈。
如果需要生成新的错误页面,是否可以在整个 Web 服务器上替换标准的黄屏,而不必为每个应用程序配置自定义的错误输出?
当 ASP.NET 应用程序出错并生成黄屏显示时,我想从错误页面创建某种链接,该链接将直接跳转到 Visual Studio 中的正确代码行。
我不确定如何解决这个问题,或者是否已经存在任何工具可以完成它 - 但我希望得到一些关于从哪里开始的反馈。
如果需要生成新的错误页面,是否可以在整个 Web 服务器上替换标准的黄屏,而不必为每个应用程序配置自定义的错误输出?
您可能需要在页面中嵌入 ActiveX 控件才能实现类似的功能。
黄屏死机由默认的 ASP.NET HTTPHandler 提供。
为了拦截它,您需要在它前面添加另一个 HTTPHandler 来拦截所有未捕获的异常。
那时,您可以为错误布局做任何您想做的事情。
创建一种直接跳转到 Visual Studio 的方法会很棘手。我可以通过 COM/ActiveX 对象在 IE 中看到它。
就服务器而言,黄屏死机只是一个 500 错误,您可以使用 web.config 的错误部分重定向到自定义屏幕。要以相同的方式更改整个服务器,您可能可以在 iis 级别覆盖它?或者甚至可以在 machine.config 文件中设置默认行为(虽然不是 100% 确定)
就服务器而言,黄屏死机只是一个 500 错误,您可以使用 web.config 的错误部分重定向到自定义屏幕。要以相同的方式更改整个服务器,您可能可以在 iis 级别覆盖它?或者甚至可以在 machine.config 文件中设置默认行为(虽然不是 100% 确定)
如果您让它一直冒泡到 IIS,您将无法访问异常信息。最好在 YSOD 之前捕获异常并为您自己服务。
这可以在应用程序级别完成。
不要忘记您需要程序调试数据库 (pdb) 文件来查找源代码行号。处于发布模式的应用程序不会具有与调试版本相同级别的信息。
我能想到的最简单、最懒惰的事情就是让这个过程如此发生:
一个简单的 Google 搜索 提供了有关如何使用外部程序操作 VS 的有用指示,例如 MSDN 上的这篇文章。
如果你想变得更时髦,那么当然还有其他方法,但我宁愿写出一个快速而肮脏的程序,然后把它拿走,这样我就可以做我的事了。
不要让工具变成项目...
-亚当