当调用API的<httpError>
控制器预计处理404时,如何阻止IIS 8拦截HTTP 404错误并处理它们(通过<customError>
或AngularJS
) ? API调用返回的404仅表示找不到请求的对象。然而,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(上面)中禁用自定义错误处理,但我仍然想要一个默认的catch all error页面。
答案 0 :(得分:1)
如果您覆盖基本控制器protected override void OnException(ExceptionContext filterContext)
您可以设置filterContext.HttpContext.Response.TrySkipIisCustomErrors = true
。这将指示IIS忽略您定义的自定义错误。
有关在控制器中捕获404的详细信息,请参阅this文章。