SharePoint 2010中,异常处理HTTP模块不能正常工作

问题描述:

我已经写了下面的HTTP模块捕获所有异常:SharePoint 2010中,异常处理HTTP模块不能正常工作

namespace Code.CapEx.Web.Framework.Http.Modules 
{ 
    public class ExceptionHandlingModule : IHttpModule 
    { 
    public void Init(HttpApplication context) 
    { 
     context.Error += OnError; 
    } 

    private static void OnError(object sender, EventArgs e) 
    { 
     var exc = HttpContext.Current.Server.GetLastError(); 
     ProcessException(exc.InnerException); 
    } 

    private static void ProcessException(Exception exception) 
    { 
     HttpContext.Current.Items["LastError"] = exception; 
     EntLogger.Instance.Error(exception); 

     if (exception is PermissionsException) 
     { 
     HttpContext.Current.Response.Redirect("~/_layouts/MyProject/NotAuthorized.aspx"); 
     } 
     else 
     { 
     HttpContext.Current.Server.Transfer("~/_layouts/MyProject/Error.aspx"); 
     } 
    } 
    } 
} 

它完美我的开发机器上(没有的SharePoint),真正捕获所有异常。

但在质量保证机器上,本站在sharepoint 2010文件夹下工作,异常不会被捕获!

什么是问题来源? (我没有忘记在web.config中注册http模块;))

+0

可能发生异常,但不执行重定向,用户可以看到异常详细信息。 – Ruslan 2012-02-28 18:31:00

当SharePoint发生异常时,大部分时间由SharePoint处理,然后用户重定向到SharePoint错误页面例外的细节。请调查这是你的情况。

要理解我在说什么更精确地看看方法 SPUtility.TransferToErrorPage(...)以及它们在SharePoint中的使用方式。