当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET自定义错误,除了404错误,

如何解决《ASP.NET自定义错误,除了404错误,》经验,为你挑选了1个好方法。

我设置了自定义错误如下..

protected void Application_Error(Object sender, EventArgs e)
{
    Exception ex = HttpContext.Current.Server.GetLastError();
    if (ex is HttpUnhandledException && ex.InnerException != null)
        ex = ex.InnerException;
    if (ex != null)
    {
        try
        {
            Logger.Log(LogEventType.UnhandledException, ex);
        }
        catch
        { }
    }

    HttpContext.Current.Server.ClearError();
    Response.Redirect(MyCustomError);

}

我想知道是否有可能检测到此错误是否为404错误,然后显示默认的404错误?



1> dlamblin..:

我不得不说我真的很困惑你为什么要清除发生的任何错误,然后首先重定向到自定义错误页面.

也许改变:

HttpContext.Current.Server.ClearError();
Response.Redirect(MyCustomError);
//to
if (!(ex is HttpException && 404 == ((HttpException)ex).getHttpCode())){
  HttpContext.Current.Server.ClearError();
  Response.Redirect(MyCustomError);
}

否则不要执行任何这些检查并留下任何未找到的文件例外.让它们由web.config框架中定义的自定义错误处理程序处理.


    
    

如果您没有看到要处理的操作,请将模式更改为"开".

如果您需要抛出404,可能是因为已从DB中删除了所请求项的ID,则抛出相应的HttpException错误.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有