sharepoint 2010,异常处理httpmodule不工作
本文关键字:工作 httpmodule 异常处理 2010 sharepoint | 更新日期: 2023-09-27 18:26:00
我已经编写了以下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");
}
}
}
}
它在我的开发机器上运行得很好(没有共享点),并且可以捕获所有异常。
但在QA机器上,这个网站在sharepoint2010文件夹下工作,根本不会发现异常!
问题的根源是什么?(我没有忘记在web.config中注册http模块;)
当SharePoint中发生异常时,大部分时间都由SharePoint处理,然后将用户重定向到包含异常详细信息的SharePoint错误页面。如果这是你的情况,请调查一下。
要更准确地理解我所说的内容,请查看方法TransferToErrorPage(…)以及它们在SharePoint中的使用方式。