3

MVC 4.0 を使用して .NET 4.0 で ASP.NET Web API アプリケーションを実行しています。これは、IIS 7.5、Windows Server 2008 R2 Datacenter Edition で実行されています。

に HTTPGETリクエストを送信すると、適切なコンテンツを含むmyserver/apiHTTP ステータス コード200(または401ログインしていない場合) を含むレスポンスが返されます。

しかしOPTIONS、同じ URL に対して HTTP 要求を行うと、常にステータス コード200と空の応答本文 ( Content-length = 0) を含む応答が返されます。

OPTIONSまた、存在しない URL (たとえば、 ) に対してHTTP 要求を行うと、この応答が返されますmyserver/api/foo

OPTIONS動詞は私のファイルで許可されていますweb.config

問題は 1 つのサーバーでのみ発生し、他のサーバーは正常に動作します。

なぜこれが起こるのでしょうか?

4

1 に答える 1

3

IIS には、MVC よりも前に要求をキャッチする可能性があるデフォルトの OPTIONSVerbHandler があります。そのハンドラーを削除すると、アプリケーションは要求を処理し、正しい応答を返す必要があります。

<system.webServer>
    <handlers>
        <remove name="OPTIONSVerbHandler" />
于 2013-08-27T06:40:28.203 に答える