您的位置:首页 > 编程语言 > C#

C#中使用错误页面

2016-04-27 09:09 239 查看
在web.config配置

1<customerrorsmode="remoteonly"defaultredirect="genericerrorpage.htm">
2<errorstatuscode="403"redirect="noaccess.htm"/>
3<errorstatuscode="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"

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

 其中redirectmode属性值有responseredirect和responserewrite

  1)redirectmode属性设置为responseredirect,则将用户重定向到该错误页面,并且原始url更改为该错误页面的url,并附带aspxerrorpath参数,参数值为发生错误的动态页的路径。

  2)redirectmode属性设置为responserewrite,则将用户定向到错误页面,并且不更改浏览器中的原始url。

  当设置redirectmode为responserewrite时,如果未安装.netframework3.5,会显示asp.net默认的编译错误,并没有执行定义的错误页面。edirectmode指定为responseredirect时会执行指定的错误页面,但是会附带aspxerrorpat参数。

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

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

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


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: