【发布时间】:2011-09-24 13:38:40
【问题描述】:
我有一个 asp.net MVC3 应用程序。在我的控制器中,我有一个使用 Response.StatusCode = 600 设置自定义响应代码的 ajax 操作。我需要按原样传递响应,而 IIS 不会尝试查找自定义错误页面。我尝试使用以下代码让 IIS 不使用其自定义页面来响应状态为 600。
<!-- Pass through Ajax Errors with status code 600 -->
<httpErrors errorMode="Detailed" existingResponse="PassThrough">
<error statusCode="600" path="/" />
</httpErrors>
<!--End -->
上述 sn-p 的问题在于,这适用于所有响应代码,因此即使代码因 500 内部服务器而失败,响应也会按原样通过,而不会受到 IIS 干扰。这会将我的内部控制器和视图代码暴露给用户(如果偶然发生了一些我没有处理的异常)。
那么,如何配置 web.config 以仅在 response.statuscode 为 600(自定义)时通过详细响应,并为其他错误(例如内部服务器错误 500)提供默认的 IIS 自定义页面。
【问题讨论】:
-
尝试将
<customErrors defaultRedirect="/YourLink"></customErrors>添加到<system.web>它会按照我的想法解决。
标签: asp.net-mvc asp.net-mvc-3 iis-7 iis-7.5