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模块;))
答
当SharePoint发生异常时,大部分时间由SharePoint处理,然后用户重定向到SharePoint错误页面例外的细节。请调查这是你的情况。
要理解我在说什么更精确地看看方法 SPUtility.TransferToErrorPage(...)以及它们在SharePoint中的使用方式。
可能发生异常,但不执行重定向,用户可以看到异常详细信息。 – Ruslan 2012-02-28 18:31:00