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 2010,异常处理httpmodule不工作

当SharePoint中发生异常时,大部分时间都由SharePoint处理,然后将用户重定向到包含异常详细信息的SharePoint错误页面。如果这是你的情况,请调查一下。

要更准确地理解我所说的内容,请查看方法TransferToErrorPage(…)以及它们在SharePoint中的使用方式。