zoukankan      html  css  js  c++  java
  • Web.config中用<customErrors>可以自定义默认的出错页面 dodo

    <customErrors mode="On |off|RemoteOnly" defaultRedirect ="error/customerrorpage.aspx">

    <error statusCode="404" redirect="/error/404Page.aspx"/>(如果发生404错误:找不到页面)

    <error statusCode="403" redirect="/error/403page.aspx"/>(如果发生403错误:系统验证失败)
      
       </customErrors>

    报错模式

    (1)关闭模式:一旦发生错误,asp.net 把默认的报错页面显示给本地和远程用户。

    (2)开启(on)模式:当报错模式属性被设为“开启”时,asp,net把用户自定义的出错页面,而不是其默认的报错页面显示给本地和远程用户。

    (3)只有远程启动(RemoteOnly)模式 :asp.net的报错页面只能被本地用户看到远程用户的访问请求,将会显示自定义的出错页面。

    <customErrors>标识节和global.aspx中的application_error事件有什么样的关系呢?

    首先:当系统发生错误时,首先是触发在Global.asax中的Application_Error事件,可以再Application_Error事件用Server.GetLastError得到异常,接着系统处理完该事件之后,然后才转向Web.config中指定的错误页面,这里有一点请注意,在转向出错页面之前,asp.net会调用Server.ClearError()来清除所有出错的异常,因此,在出错页面中,并不能用Server.GetLastError得到出错的原因。

    为了实现统一的出错页面,并能显示其原因,可以考虑在global.assa内的Application_Error事件中将错误信息存储在Session对象或Cache对象中,然后在自定义错误页面将其取出显示就可以了。也可以在Application_Error事件内直接调用如下代码

    protected void Application_Error(Object sender,EventArgs e)

    {

        if(Context!=null&&Context.IsCustomErrorEnabled)

    {

    Server.Transfer("Error.aspx",false);

    }

    }

    Context.IsCustomErrorEnabled是用于判断应用程序是否使用了自定义出错页面,因为Server.Transfer方法会阻止Rsponse.End的内部调用,在服务器内部直接转向,这样在Error.aspx里就可以捕获页面异常了。
  • 相关阅读:
    OpenFire源码学习之十九:在openfire中使用redis插件(上)
    OpenFire源码学习之十八:IOS离线推送
    OpenFire源码学习之十七:HTTP Service插件
    OpenFire源码学习之十六:wildfire
    OpenFire源码学习之十五:插件开发
    OpenFire源码学习之十四:插件管理
    OpenFire源码学习之十三:消息处理
    数据挖掘入门
    iOS小技巧
    图片加载完成之前对图片高度侦测
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/2567877.html
Copyright © 2011-2022 走看看