質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

1回答

4936閲覧

IIS7.5+ASP.NET(C#)なページにPUTメソッドでJSONデータを送ると411エラー

shinuch2891

総合スコア24

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

1クリップ

投稿2016/06/03 13:33

編集2022/01/12 10:55

###前提・実現したいこと
・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サーバ
の順で到達します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

サーバーがエラーを返しました。ということなのでIISのログを見てみてはいかがでしょうか?他の環境で動いたのならそれはサーバー側の設定の違いなのかもしれません。

投稿2016/06/03 13:56

oskbt

総合スコア1895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinuch2891

2016/06/03 14:42

IISのログを見ましたが、そもそも到達されていないのかログへの記載はありませんでした。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問