统一错误页面

protected void Application_Error(object sender, EventArgs e)
        {
            Response.Write("发生错误:"+Server.GetLastError().ToString());
            Server.ClearError();
        }


这样在任何一个页面抛出异常时都会执行这个Error方法。

也可以在web.config里加<customErrors mode="On" defaultRedirect="Error.aspx"></customErrors>
就直接指向该页了,但是如果这两个都存在的话是先执行了Application_Error。所以如果要使用web.config方法,需要把Application_Error置为空!

 

 

 

--------------------------------------------

第一种:

web.config里......

<compilation
         defaultLanguage="c#"
         debug="false"
    />

 

    <customErrors   mode="RemoteOnly" defaultRedirect="error/genericerror.htm" >
      <error statusCode="500" redirect="error/callsupport.htm"/>
      <error statusCode="404" redirect="error/notfound.htm"/>
      <error statusCode="403" redirect="error/noaccess.htm"/>
    </customErrors>  

 

建立四个htm(aspx也行)文件,放到error文件夹下面.

error/genericerror.htm   一般性错误

error/callsupport.htm 内部服务器错误

error/notfound.htm 网页未找到

error/noaccess.htm 网页已禁止

 

第二种:这个是别人写的,我也是查到的.呵...

在global里面控制的.然后把错误信息插入一个表中.再将程序导入到一个错误页面.还可以专门做一个错误显示页.
在Application_Error方法中控制.

protected void Application_Error(Object sender, EventArgs e)
{
Exception Error = Server.GetLastError();
if (Error != null)
{

SqlServer ss = new SqlServer();
string sql = "insert into exception (errorPage,errorLocation,errorReason,errorOuter,errorStackTrace)values";//表中还有出错时间
sql=sql+"('"+ Request.Url.ToString() +"',";
sql=sql+"'"+ Error.InnerException.TargetSite +"',";
sql=sql+"'"+ Error.InnerException.Message +"',";
sql=sql+"'"+ Error.InnerException.ToString() +"',";
sql=sql+"'"+ Error.InnerException.StackTrace +"')";
try
{
ss.execNoReturn(sql);
}
catch(Exception ex)
{
throw ex;
}
finally
{
Server.Transfer(this.Request.ApplicationPath + "//Error.aspx");
}
}
}

 

方法都有些简单,适合小一点的项目.

原文来源:http://apps.hi.baidu.com/share/detail/18563220

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值