ASP.net-空白页的问题


protected
  void  Application_Error( object  sender,  EventArgs  e)
        {
             ILog  log =  LogManager  .GetLogger( typeof (  MvcApplication ));
             Exception  objErr = Server.GetLastError().GetBaseException();
             if  (objErr.ToString().IndexOf( "favicon.ico"  )==-1)
            log.Error(objErr);
             Server.ClearError();
        }
 
本示例在应用程序统一记录错误日志, 可从事件查看器访问应用程序日志。
但在记录 错误 以后, Server.ClearError(); ” 在这种状况下该页就为  空白页面
应该直接跳转, 重定向到另外一个更用户友好的 错误 页或者根据须要执行一些其余操做。
 

如何使用 Web.config 文件
若是您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错误,则将根据 Web.config 文件的 <customErrors> 部分中的设置处理错误。在 <customErrors> 部分,可将重定向页指定为默认的错误页 (defaultRedirect) 或者根据引起的 HTTP 错误代码指定特定页。您可以使用此方法自定义用户收到的错误信息。服务器

若是发生在应用程序之前的任一级别都未捕获到的错误,则显示这个自定义页。本节演示如何修改 Global.asax 文件,以便从不调用 Server.ClearError。所以,错误在做为捕获错误的最后一点的 Web.config 文件中进行处理。 1. 从上一个示例中打开 Global.asax 文件。 
2. 将 Server.ClearError 行注释掉,以便确保错误出如今 Web.config 文件中。 
3. 将所做更改保存到 Global.asax 中。代码看起来应相似以下形式: 
using System.Diagnostics;spa

protected void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
string err = "Error Caught in Application_Error event/n" +
"Error in:" + Request.Url.ToString() +
"/nError Message:"+ objErr.Message.ToString() + 
"/nStack Trace:"+ objErr.StackTrace.ToString();
EventLog.WriteEntry("Sample_WebApp",err,EventLogEntryType.Error);
//Server.ClearError();
//additional actions...日志

}
 
将如下代码添加到 <customErrors> 部分,以便将用户重定向到自定义页: 
<customErrors defaultRedirect="errorStatus.htm" mode="On">
</customErrors>
备注:必须修改 defaultRedirect 属性中的文件路径,以便它引用相关的 Web 服务器和应用程序名称。 
相关文章
相关标签/搜索