在数据库中记录异常并在页面上显示消息,而不是在自定义错误页面上

时间:2011-12-05 11:46:32

标签: asp.net

我有一个页面,如果在按钮点击或页面加载等的page1.aspx上发生错误,我想在数据库中记录异常。 有两种方式

  1. 使用global.asax Application_Error事件记录异常,但这不会在page1.aspx上显示用户友好消息,而是会重定向到自定义错误页面。
  2. 在页面级别记录异常,即Page_Error,但在这里我必须在每页的Page_Error事件中编写代码。
  3. 所以我的问题是如何在page1.aspx本身上显示用户友好的消息,并在global.asax Application_Error中记录错误,而不重定向到自定义页面/离开page1.aspx。

2 个答案:

答案 0 :(得分:0)

我相信你可以使用httpModules来做到这一点。下面的链接将向您展示如何写入文本文件。写入数据库不会那么不同。

http://dotnetscraps.com/dotnetscraps/post/ASPNETHow-to-write-error-messages-into-a-text-file-using-a-simple-httpModule.aspx

答案 1 :(得分:0)

如果您之前未使用HttpModules,则可能需要采用其他方法。

创建一个subclass的MasterPage,称之为BaseMasterPage。 (或者如果您没有使用MasterPage,请使用Page)。

而不是从MasterPage继承的MasterPage代码

public partial class MasterPage : System.Web.UI.MasterPage
{
    ....
}

继承子类

public partial class MasterPage : BaseMasterPage
{
    ....
}

将错误处理代码放在BaseMasterPage中。