Страница ошибки по умолчанию web.config, конфликтующая с 404, возвращенной из API

Как предотвратить перехват IIS 8 ошибок HTTP 404 и их обработку (через <httpError> или <customError>), когда ожидается, что контроллер AngularJS, вызвавший API, будет иметь дело с ошибкой 404? Ошибка 404, которую возвращает вызов API, просто означает, что запрошенный объект не найден. Тем не менее, IIS, кажется, перехватывает 404 и обрабатывает его как ошибку.

<system.webServer>
  <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" defaultPath="Error.html">
    <remove statusCode="404" />
    <remove statusCode="505" />
    <error statusCode="404" path="Error.html" />
    <error statusCode="505" path="Error.html" />
  </httpErrors>
</system.webServer>

Я мог бы отключить пользовательскую обработку ошибок в файле web.config (см. выше), но мне по-прежнему нужна стандартная страница перехвата всех ошибок.


person webworm    schedule 08.12.2014    source источник


Ответы (1)


Если вы переопределяете protected override void OnException(ExceptionContext filterContext) базового контроллера, вы можете установить filterContext.HttpContext.Response.TrySkipIisCustomErrors = true. Это укажет IIS игнорировать определенные вами пользовательские ошибки.

Подробнее см. в этой статье. отлов 404 в контроллере.

person Ross Bush    schedule 08.12.2014