C#中使用错误页面

来源:互联网 发布:阿里云服务器默认端口 编辑:程序博客网 时间:2024/05/16 13:57

在web.config配置

1         <customerrors mode="remoteonly" defaultredirect="genericerrorpage.htm">2             <error statuscode="403" redirect="noaccess.htm" />3             <error statuscode="404" redirect="filenotfound.htm" />4         </customerrors>            

mode的值可以为on、off、remoteonly

on表示任何时候都执行、off从不执行彻底关闭、remoteonly本地不执行可以看到错误信息,其他用户访问执行跳入错误页面(实现机制,限制ip 只允许127.0.0.1访问)如果项目发布到服务器,指只有登录服务器才能看到错误信息,推荐使用remoteonly本地调试使用on

 

defaultredirect="genericerrorpage.htm"当页面有错误的跳入指定页面,这里可以是aspx页面制作日志的时候使用defaultredirect="errorpage.aspx"

 

想看到错误信息必须在<customerrors mode="on" redirectmode="responserewrite"  defaultredirect="errorpage.aspx">中添加redirectmode="responserewrite"属性

 其中redirectmode属性值有responseredirect和responserewrite
  1)redirectmode 属性设置为responseredirect,则将用户重定向到该错误页面,并且原始 url 更改为该错误页面的 url,并附带aspxerrorpath参数,参数值为发生错误的动态页的路径。
  2)redirectmode 属性设置为 responserewrite,则将用户定向到错误页面,并且不更改浏览器中的原始 url。
  当设置redirectmode为responserewrite时,如果未安装.net framework3.5,会显示asp.net默认的编译错误,并没有执行定义的错误页面。edirectmode指定为responseredirect时会执行指定的错误页面,但是会附带aspxerrorpat参数。

  所以要配置web.config的customerrors节点的属性redirectmode为responseredirect并且起作用,需要安装.net framework3.5。

 

如:sqlconnection sql = new sqlconnection("ip=127.0.0.1&username=qqqq&pwd=qqqqqq");在某一页面制造一个错误这是会跳入errorpage.aspx

在errorpage.aspx中可以通过exception ex = httpcontext.current.server.getlasterror();来获取最近的一个错误信息通过ex.innerexception.message和ex.innerexception.stacktrace来读取错误信息并写入日志以备程序员查看纠错
 

 


0 0
原创粉丝点击