sharepoint 2010, обработка исключений httpmodule не работает - PullRequest
0 голосов
/ 28 февраля 2012

Я написал следующий модуль 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) и действительно перехватывает все исключения.

Нона машине QA, где этот сайт работает в папке sharepoint 2010, исключения не перехватываются вообще!

В чем может быть источник проблемы?(Я не забыл зарегистрировать модуль http в web.config;))

1 Ответ

0 голосов
/ 29 февраля 2012

Когда в SharePoint возникает исключение, оно обрабатывается SharePoint большую часть времени, а затем пользователь перенаправляется на страницу ошибки SharePoint с подробностями исключения. Пожалуйста, выясните, относится ли это к вашему делу.

Чтобы более точно понять, о чем я говорю, взгляните на методы SPUtility.TransferToErrorPage (...) и как они используются в SharePoint.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...