1

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

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

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

4

6 回答 6

1

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

于 2008-08-21T17:22:03.477 回答
0

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

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

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

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

于 2008-08-26T00:40:36.027 回答
0

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

于 2008-08-26T00:53:01.987 回答
0

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

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

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

于 2008-08-26T00:54:49.097 回答
0

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

于 2008-08-26T01:55:11.417 回答
-1

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

  1. 黄屏被修改,所以源代码行是可点击的。单击时,它会提供一个带有源文件名和行号的小文本文件。
  2. PC上的一个小程序是绑定到黄屏让你下载的小文件的扩展名。该程序使用 Visual Studio 的可扩展性模型打开源文件并转到该行。该程序可能需要知道您的源代码在哪里。

一个简单的 Google 搜索 提供了有关如何使用外部程序操作 VS 的有用指示,例如 MSDN 上的这篇文章

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

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

-亚当

于 2008-08-26T00:49:24.680 回答