2009-06-20 18 views
0
//code in the client 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://192.168.0.5/test"); 
WebResponse response = request.GetResponse(); 

ワークグループ内に2台のマシンを持つLAN設定があります。 - 192.168.0.1(これはクライアント) - 192.168.0.5(これはWebサーバー)クライアントはワイヤレスネットワーク経由でWebサーバーに接続できませんCODE

上記のコードは、単純な有線ネットワークでも問題なく動作します。

ワイヤレスネットワークで、スイッチの代わりにWi-Fiルーターを使用してネットワークをセットアップすると、コードが動作しない - GetResponseで停止する。

奇妙なことに、私がブラウザを開いて「http://192.168.0.5/test」と入力すると、ページが表示されます!

私には何が欠けていますか?クライアントがコードを介してサーバーに接続できないのはなぜですか?

+2

Windowsファイアウォールはオンになっていますか?その場合は、テストを中止するようにしてください。 – statenjason

+0

いいえ、ファイアウォールはテストするすべての状況でオフになっています。まだ動作していません – Sameet

+0

Windows /あなたのブラウザにプロキシが定義されていますか? –

答えて

2

「立ち往生する」とは、ハングアップするという意味ですか?

これはプログラムの最初のリクエストですか、それとも他のリクエストですか?ウェブリクエストを「ハングする」ことがよくある原因の1つは、ウェブレスポンスを閉じたり廃棄したりすることではありません。同じサーバーに2つの(デフォルトで)要求を作成したら、応答が確定するまで待つ必要があります。

ワイヤレスネットワーク接続の場合は有線ではなく、なぜあなたに影響するのか分かりませんが、ウェブレスポンス(好ましくはusingステートメント)を閉じていない場合は、開始するように修正することをおすすめしますと。

次は、WireSharkでネットワークをトレースします。これにより、リクエストが実際に送信されたかどうか、応答が返ってきたかどうかなどを確認するのが簡単になります。

+0

ありがとうございます。 「スタックします」とは、ハングすることを意味します。最終的にタイムアウト例外を持つcatchブロックに移動します。 これは、クライアントから送信される最初の要求であるため、閉じられていないWeb応答の質問はありません。 私はWiresharkを試して、それが役立つかどうか確認します。ありがとう。 – Sameet

+0

右。要求を出しても応答が返ってこない場合は、.NETの要求とブラウザの要求を比較します。私はそれが巨大な詳細でそれを見て楽しいことを期待していないが、それは最終的に助ける必要があります。 –

関連する問題