none
「基になる接続が閉じられました」が発生する原因について RRS feed

  • 質問

  • Visual Studio 2003 VB.NET で開発をしています。

    Windows Forms のアプリケーションで、HTTP サーバーと通信する
    プログラムを書きました。

    Windows クライアント側からは、GET でパラメータを渡し、
    その応答を得る、という単純なものです。

    いろいろな環境でプログラムは動いているのですが、
    ある特定の環境でのみ

    「基になる接続が閉じられました。リモートサーバーに接続できません。」
    という例外が発生します。

    たしかにこの環境では proxy サーバーが存在するのですが、
    Dim proxy As WebProxy = New WebProxy(PROXY_SERVER)
    webreq.Proxy = proxy

    のように設定し、他の環境では、proxy サーバーが存在しても通信できております。
    ある特定の環境でのみ、エラーが表示されます。
    (通信できる環境とできない環境の違いも判断できておりません)

    また、アプリケーションでエラーになりますが、
    IE などで該当サーバーにアクセスすると問題なく通信できるので、
    アプリケーションの問題ではないか、と推測しております。

    しかし、現在、上記のようなエラーメッセージが表示される原因、対策方法がわからず
    いろいろ試行錯誤しておりますが、解決できません。

    アドバイスを頂けないでしょうか?

    2006年6月29日 6:53

回答

すべての返信

  • 諸農です。

    URIにサーバー名を使っているのであればもしかすると名前解決できていないのかも知れません。IPアドレス指定でやってみてはいかがでしょうか。

    2006年6月29日 23:10
  • proxyに何かログが出ていませんでしょうか?

    あとはネットワークトレースを取ってみると、何かわかるかもしれません。

    ネットワークのトレース
    http://msdn2.microsoft.com/ja-jp/library/hyb3xww8.aspx

    2006年6月30日 1:15
    モデレータ
  • >ネットワークのトレース
    >http://msdn2.microsoft.com/ja-jp/library/hyb3xww8.aspx

    ありがとうございます。早速チャレンジしてみましたが、
    うまくログが取られません。

    http://msdn2.microsoft.com/ja-jp/library/ty48b824.aspx

    App.Config に、上記 URI の構成情報を設定しました。
    構成プロパティ - ビルドにて、TRACE定数の定義を行なった状態
    (Debug ビルド) で実行しているのですが、System.Net.HttpWebRequest、
    HttpResponse でアクセスしても、一向にログファイルが残りません。

    DEBUG ビルド、App.Config だけでは足りないでしょうか?

    トレース情報をファイルに出力するのに必要な内容で、足りない事が
    あればアドバイス頂けますと幸いです。よろしくお願いします。

    2006年6月30日 4:28
  •  RD18K さんからの引用

    DEBUG ビルド、App.Config だけでは足りないでしょうか?

    ごめんなさい。調べたところ、.NET 2.0じゃないとできないようです。
    申し訳ありません。m(_ _)m

    しかし、なぜつながらないんでしょうね? サイトによってはUserAgentヘッダなどに値がないと接続できないようですが、これが関係あるのかな? でもこれだと他のマシンからもつながらないような気がしますし・・・。
    あとは、環境が許せばプロキシを通さないでテストしてみるとかでしょうか。

    2006年6月30日 13:41
    モデレータ
  • 本当に思いつきで申し訳ないのですが、ファイヤーウォール的なものでポートを閉じてるって事はないでしょうか。

    私は使わないので詳しくないですが、アプリケーションごとに設定するような種類のものもあったような気がします。

    ハズレてたらごめんなさい。

    # IE7beta2で書くと改行が2つ入っちゃうな。

    2006年7月3日 8:10