- - PR -
エラー:The underlying connection was closedへの対応方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-06-05 11:38
現在、Visual Studio .net 2003、.net Framework1.1、C#を使い、WindowsアプリとWebサービスを使ったシステムを開発しております。
現在、Windowsアプリで画面を開いたまま数分時間を置き、画面を遷移させDBから情報を取得しようとすると、下記エラーが発生して対応に苦慮しています。 エラー1: the underlying connection was closed: An unexpected error occurred on a receive エラー2: the underlying connection was closed: An unexpected error occurred on a send 上記エラーが発生するようになったのは、WindowsアプリとDBサーバ間の接続方法を下記のように変更してからです。 【接続変更前】 Windowsアプリ⇔プロキシサーバ⇔ロードバランサー⇔Webサーバ(複数)⇔DBサーバ(1台) 【接続変更後】 Windowsアプリ⇔ロードバランサー⇔Webサーバ(複数)⇔DBサーバ(1台) プロキシサーバを経由しないようにするための設定方法はIEのLAN設定→プロキシ設定の例外ルールを用いて設定しました。(IISのログより接続元のIPがプロキシサーバのIPからクライアントPCが持つIPに変更されていることを確認しています) ロードバランサーを用いて複数台のWEBサーバのうち、1台を経由し、WEBサーバ上のWEBサービスを用いてDBサーバへ接続しています。 また、下記接続方法であれば上記エラーが発生せずにWindowsアプリが動作することを確認しています。 ○Windowsアプリ⇔Webサーバ(1台)⇔DBサーバ(1台) プロキシサーバを用いれば上記エラーが発生しないのですが、プロキシサーバを使わずに接続する必要がでてきました。 上記状況より、ロードバランサーとWindowsアプリが直接繋がるとエラーが頻発しているのですが、プログラムに問題があるのかネットワーク設定に問題があるのかまったく検討がつかない状況です。 また、Webアプリではプロキシサーバを使用せずに問題なく動作することからロードバランサーの設定に問題があるとは考えにくいと思っております。 【Webアプリの接続方法】 ○Webアプリ(asp、IE使用)⇔ロードバランサー⇔Webサーバ(複数)⇔DBサーバ(1台) 上記現象がおきる原因に心辺りがある方、ご教授ください。 | ||||
|
投稿日時: 2007-06-05 13:49
なんか大変そうでお気の毒ですが、 複数のWebサーバーを使うほど規模の大きなシステムの問題をここで聴くのは、 質問者にも、回答者にも、閲覧者にも、 利益がほとんどないと思います。 Webサーバーの種類もいろいろありますし(IISのバージョン、OSなど)、 ネットワークの接続のトラブルならソフトだけの問題でなく、間の経路だとか 物理的設置状況による場合もあるし、 どんなロードバランサつかってるのかもわからないし。 通常の環境の人では再現させられる人もいませんし、 同じ問題で困ってる人もほとんどいませんから、 たとえ問題の解決策がわかっても、 それで利益を得る人がいません。 そもそも興味がわきません。 がんばって自分で調べるしかないでしょう。 まず、エラーからしてTCPかHTTPレベルのコネクションの問題でしょう。 なら、どこで接続が切れてるのか、誰が切ってるのかを調べるべきです。 数分おいた場合、どのレベルの接続がきれるのでしょうか? ロードバランサーはどんなロードバランサーですか? 「ロードバランサー」では機能の名称しかわかりませんので、 どんな実装の機械なのかわかりません。 TCPレベルのもの、HTTPレベルのもの、いろんな実装があります。 違いをきちんと理解していればどこが悪いか検討がつくはずです。 WindowsアプリとWebアプリと比較してますが、
このWebアプリはどこで動いてるのですか? クライアントにIISでも入れているのですか? 普通Webアプリといったら、リモートのWebサーバー上でASPを動かして、 それをブラウザ経由で動かします。 ASPのページ遷移やポストバックは、同じ接続で起こるとはかぎりません。 サーバー側のオブジェクトはタイムアウトするまで、生きています。 (普通30分くらいかな?) HTTPの接続が切れても、サーバー側のオブジェクトが生きていれば ASP的には同じ接続です。 WebアプリとWindowsアプリを比較して、何が比較できるのか、 よく考えましょう。 文面を読む限りではロードバランサーがだめなんだろうと思いますよ。 HTTPコネクションのタイムアウトが短いんじゃないかな? | ||||
|
投稿日時: 2007-06-09 16:23
当方とほぼ似たようなシステムでほぼ似たような現象ですね
Windowsアプリを動かしているクライアント側でこのようなエラーでているもの と思います。 http://msdn2.microsoft.com/ja-jp/library/aa560610.aspx ここに書いてある方法を試してみてください。当方ではこれで随分改善されました。 WindowsアプリをクライアントとしたWebサービスはこれから増えると思うのですが なかなか情報がないですね |
1