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.

httpErrorsとcustomErrorsの周りのmvcアプリケーションのweb.configで他のさまざまな設定を試しましたが、どちらも違いはないようです。

500ではなく実際の応答を返すようにIISを構成するにはどうすればよいですか?

4

1 に答える 1

2

そのため、さらに多くのグーグルを行った後、httpErrorsの委任を許可するようにapplicationHost.configファイルを変更しました。これで、クライアントに正しい応答が返されます。

DenyからAllowに次のように設定する必要がありました。

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

<location>ファイルの指示に従ってタグを使用しようとしました。

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

しかし、これは機能しませんでした。パスにすべてのサイトではなくWebサイトを指定すれば機能しますが、Webサーバー上のすべてのサイトに許可したいと思います。

于 2012-05-04T03:51:31.177 に答える