7

私の調査によると、IIS 7.5 では、ここで説明する理由により、応答にConnection:Keep-Aliveが含まれていません。残念ながら、応答ヘッダーにConnection:Keep-Aliveが表示されない限り、ソケットを再利用しない Web サービスに接続する非準拠のクライアントがあります。プログラムでこのヘッダーを追加しようとしましたが、IIS は意図的に削除しているようです。このヘッダーをいたずらなクライアントに強制的に送り返す他の方法はありますか?

4

1 に答える 1

9

これについて Microsoft にサポート チケットを開いたところ、最悪の疑いが確認されました。IIS 7.5 は、意図的に connection:keep-alive ヘッダーが応答で返されないようにします。HTTP 1.1 RFC に従って、すべての接続はキープアライブを想定する必要があります (HTTP 1.0 からの逸脱)。したがって、このヘッダーの省略はデフォルトで正しい (?) 動作です。キープアライブが望ましくない場合、IIS は connection:close ヘッダーを送信します。

私が本当に驚いたのは、IIS がこのヘッダーの送信を阻止するために多大な努力を払ったことです。IIS パイプライン内の何かが、追加方法に関係なく、このヘッダーを取り除きます。(私の MVC アプリケーションの C# コード、IIS マネージャー -> HTTP 応答ヘッダー、IIS マネージャー -> URL 書き換えモジュール)。

このヘッダーが表示されない限り動作しない非準拠の HTTP 1.1 クライアントが非常に多く存在することを考えると、MS はこれに対して何らかのエスケープ バルブを許可すると考えるでしょう。

于 2013-12-02T16:56:13.270 に答える