6

出于安全原因,我正在尝试确保不会向用户发送非标准错误消息。通常我有标准的错误消息设置,它工作得很好。我在 web.config 中使用这些标签:

<httpErrors  errorMode="Custom">
  <remove statusCode="404" subStatusCode="-1"/>
  <remove statusCode="401" subStatusCode="-1"/>
  <remove statusCode="403" subStatusCode="-1"/>
  <remove statusCode="501" subStatusCode="-1"/>
  <remove statusCode="400" subStatusCode="-1"/>
  <remove statusCode="411" subStatusCode="-1"/>
  <error statusCode="403" path="/ErrorPages/UnAuthorized.aspx" responseMode="ExecuteURL"/>
  <error statusCode="404" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="501" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="400" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="411" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="400" path="/Account/Login.aspx" responseMode="ExecuteURL"/>
</httpErrors>

我遇到的问题是有人指出一些 403,400,501 错误消息仍然没有被重定向。

导致此问题的网址是:

www.example.com/con/ - asp.net error

wwww.example.com/..%5CStorage%5CDocuments%5C8849145d-174a-41ab-9676-0ae19d6ab741    - 403 error

以及来自无效内容长度的 411 错误。

4

1 回答 1

13

您使用的是 VisualStudio 开发服务器还是 IIS7 Express?如果您正在使用它,那么您应该尝试:

<customErrors mode="On" >
  <error statusCode="503" redirect="/Views/Shared/Error.htm"/>
</customErrors>

如果没有,试试这个:

<httpErrors existingResponse="Replace" defaultResponseMode="Redirect" errorMode="Custom">
  <remove statusCode="501"/>
  <error statusCode="501" responseMode="Redirect" path="/ErrorPages/Oops.aspx"/>          
 </httpErrors>
于 2013-05-29T09:17:04.427 回答