3

Web API を使用して RESTful サービスを構築しています。私のクライアントは HTML5/Jquery アプリケーションです。サービスとアプリケーションは、IIS 5.1 上で完全に動作します。しかし、IIS 7.5 に切り替えると、応答に Transfer-Encoding: チャンク ヘッダーが含まれていることがわかり、クライアントは UI 要素を理解/レンダリングしません (ところで、この HTML 5/JQuery はサード パーティによって行われ、私は理解していません)。 IIS 7.5 に移行するまで問題なく動作していたので、コードを変更する必要があります)。私の質問は次のとおりです。

  1. IIS が応答を「チャンク」エンコードしないように、Web API に「Conetent-Length」http ヘッダーを追加する方法/場所を教えてください。
  2. IIS 7.5 のサイト/サーバー レベルでこのエンコーディングを無効にする方法はありますか?

ブラウザ/フィドラーからサービスにアクセスすると、適切な応答(xml/json)が得られます。Json.net フォーマッタを使用しています。

4

2 に答える 2

1

これは、ベータ版後に修正された次のバグが原因である可能性があります。

「DevDiv 388456 -- コンテンツの長さがわかっている場合、WebHost はチャンク化された Transfer-Encoding を使用しないで ください」

設定 response.Headers.TransferEncodingChunked = false; 私にとってはこの問題を回避できませんでした。

また、上部にある [デコード] ボタンを押すと、応答が自動的にチャンク解除され、応答から転送エンコード ヘッダーが削除されるため、Fiddler で異なる結果が得られる可能性があります。

于 2012-05-25T12:49:27.353 に答える
1

使用する

myHttpResponseMessage.Headers.TransferEncodingChunked = false;

チャンクエンコーディングをオフにします。

于 2012-05-21T09:34:56.483 に答える