Q&A
###前提・実現したいこと
・OS:Windows Server 2008 R2
・アプリケーションサーバ:IIS7.5
・.NET Framework:4.5.1
・BIG-IPで負荷分散をし、SSLがかかっているサイト上にプログラムを配備
・ASP.NET(C#)で作っているサーバーのWebAPIに対して、PUTメソッドでJSONデータを送信する
###発生している問題・エラーメッセージ
リモート サーバーがエラーを返しました: (411) 長さが必要です
###該当のソースコード
var request = (HttpWebRequest)WebRequest.Create(url); var buffer = Encoding.GetEncoding("Shift_JIS").GetBytes(request_string); request.Method = "PUT"; request.ContentType = "application/json"; request.ContentLength = buffer.Length; request.SendChunked = false; request.Expect = "application/json"; request.Credentials = new System.Net.NetworkCredential("id", "password"); var requestStream = request.GetRequestStream(); requestStream.Write(buffer, 0, buffer.Length); requestStream.Flush(); requestStream.Close(); WebResponse response = request.GetResponse(); // ここでエラー発生
###試したこと
・社内のローカルサーバー(SSL・負荷分散無し)で、ほぼ同一環境(WinSrv2008R2、IIS7.5)の別サーバーに配備した同一プログラムに対して実行すると、問題なく完了する。
・パケットキャプチャしたところ、ちゃんとContent-lengthヘッダーは設定されている。
###補足情報(言語/FW/ツール等のバージョンなど)
・当該サーバーの上流にはFW(fortigate)が入っており、
インターネット → fortigate → BIG-IP → WebAPIサーバ
の順で到達します。
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2016/06/03 14:42