1

我们的 mvc 应用程序将响应状态代码设置为 401,并在某些情况下将 TrySkipIisCustomErrors 设置为 true。

我可以从 IIS 日志中看到它正在获取此状态代码:

2012-05-04 01:32:42 10.212.98.183 POST /v1.07/session - 80 - 10.24.22.26 curl/7.20.1+(i686-pc-cygwin)+libcurl/7.20.1+OpenSSL/0.9.8r+zlib/1.2.5+libidn/1.18+libssh2/1.2.5 401 0 0 48325

但是我在客户端收到的响应是 500:

< HTTP/1.1 500 Internal Server Error
< Content-Type: text/html
< Server: Microsoft-IIS/7.0
< Date: Fri, 04 May 2012 02:31:18 GMT
< Content-Length: 75
<
* Connection #0 to host webserver left intact
* Closing connection #0
The page cannot be displayed because an internal server error has occurred.

我已经在 web.config 中尝试了围绕 httpErrors 和 customErrors 的 mvc 应用程序的各种其他设置,但似乎没有任何区别。

如何配置 IIS 以返回实际响应而不是 500?

4

1 回答 1

2

因此,经过更多的谷歌搜索后,我更改了 applicationHost.config 文件以允许委托 httpErrors,现在我得到了正确的响应返回给客户端。

我必须将以下内容从拒绝设置为允许:

<section name="httpErrors" overrideModeDefault="Allow" />

我尝试按照文件中的说明使用<location>标签:

<location path="" overrideMode="Allow">
  <system.webServer>
    <httpErrors />
  </system.webServer>
</location>

但这没有用。如果我在路径中指定网站,而不是所有网站,它会起作用,但是,我想允许它用于网络服务器上的所有网站。

于 2012-05-04T03:51:31.177 回答