加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在ASP.NET应用程序的global.asax中处理Application_Error

发布时间:2020-12-15 18:44:33 所属栏目:asp.Net 来源:网络整理
导读:我希望在应用程序崩溃时向管理员发送邮件。 所以我只是在global.asax中这样做: void Application_error(object sender,EventArgs e){ SendMessageToAdministarator(Server.GetLastError().ToString());} 但实际上很多次Application_Error被调用,即使应用程
我希望在应用程序崩溃时向管理员发送邮件。
所以我只是在global.asax中这样做:
void Application_error(object sender,EventArgs e)
{
    SendMessageToAdministarator(Server.GetLastError().ToString());
}

但实际上很多次Application_Error被调用,即使应用程序不会崩溃。

如果应用程序崩溃,我希望只能发送邮件给管理员。

此外,我有一个简单的方法来解除应用程序?

我在寻找最简单的解决方案。

解决方法

当应用程序没有崩溃时发送什么样的错误?您可以检查异常的类型,并且不发送不会崩溃应用程序的异常的电子邮件(例如重定向可能会丢失我在代码中手动过滤的ThreadAbortException):
protected void Application_Error(Object sender,EventArgs e)
{
    Exception ex = Server.GetLastError();
    if (ex is ThreadAbortException)
        return;
    Logger.Error(LoggerType.Global,ex,"Exception");
    Response.Redirect("unexpectederror.htm");
}

您可以向错误页面添加重定向,并向用户发送一条发生错误的消息,以及一些指向该站点相关页面的链接。这是为了’提升应用程序’ – 我希望这是你想要的。

另外您可以查看使用log4net进行日志记录,还可以在服务器上记录错误并发送错误信息。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读