ASP.NET 4.0ではにフィルタを適用するIHttpModule
があります。その結果、コンテンツの長さが変更され、WCFが破損してボディ長とHTTPヘッダーの不一致が原因で400 bad request
が返されます。IHttpModule受信フィルタブレークWCFを挿入すると、Content-Lengthを調整する方法は?
どのようにWCFのこの動作を解決するためのアイデアですか?
ASP.NET 4.0ではにフィルタを適用するIHttpModule
があります。その結果、コンテンツの長さが変更され、WCFが破損してボディ長とHTTPヘッダーの不一致が原因で400 bad request
が返されます。IHttpModule受信フィルタブレークWCFを挿入すると、Content-Lengthを調整する方法は?
どのようにWCFのこの動作を解決するためのアイデアですか?
すべてのことが本当に必要とされているが、誤ったContent-Lengthヘッダを削除することですが、それはIIS6では許可されていません。統合パイプラインモードのIIS7については不明です。フィルタを使用する応答については、この更新プログラムをヘッダーに適用してください。アイデアはコンテンツタイプ(非テキスト応答を破らないように)と存在するCookie(認証を中断しないため)を取得し、すべてのヘッダーを消去して(Content-Lengthをクリアする)、次にコンテンツタイプとクッキーを再度表示します。フィルタをHttpApplication.ReleaseRequestStateイベントに適用し、次の処理を行います。 YMMV。
HttpApplication app = (HttpApplication)sender;
string ct = app.Response.ContentType;
HttpCookie[] cookies = new HttpCookie[app.Response.Cookies.Count];
app.Response.Cookies.CopyTo(cookies, 0);
app.Response.ClearHeaders();
app.Response.ContentType = ct;
foreach (HttpCookie cookie in cookies) { app.Response.Cookies.Add(cookie); }
はい、同じ問題です。残念なことに、ディスカッションでは解決策を提示することなく問題を認識するだけです。 –