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

Ich habe ein LAN-Setup mit zwei Maschinen in meiner Arbeitsgruppe. - 192.168.0.1 (das ist der Client) - 192.168.0.5 (das ist der Webserver)Client nicht in der Lage, den Web-Server über WLAN zu kontaktieren - durch CODE

Das obige Stück Code funktioniert einwandfrei in einem einfachen verkabelten Netzwerk.

Wenn ich es in einem drahtlosen Netzwerk, d. H. Mit dem Netzwerk-Setup mit einem Wi-Fi-Router anstelle eines Schalters ausführen, funktioniert der Code nicht - es bleibt auf GetResponse stecken.

Komischerweise, wenn ich meinen Browser öffnen und eingeben - http://192.168.0.5/test - es funktioniert ... die Seite zeigt sich!

Was fehlt mir? Warum kann der Client den Server nicht über Code erreichen?

+2

Ist Windows Firewall eingeschaltet? Wenn ja, versuchen Sie es abzuschalten, um es zu testen. – statenjason

+0

Nein, die Firewall ist in allen Situationen zum Testen deaktiviert. funktioniert immer noch nicht – Sameet

+0

Haben Sie einen Proxy in Windows/Ihrem Browser definiert? –

Antwort

2

Von "hängt fest" meinst du es hängt?

Ist dies die erste Anfrage im Programm, oder gibt es andere? Eine häufige Ursache für "hängende" Web-Anfragen ist das Versäumnis, Web-Antworten zu schließen/zu disponieren. Sobald Sie zwei (standardmäßig) Anfragen an denselben Server gestellt haben, müssen Sie warten, bis die Antworten abgeschlossen sind.

Ich weiß nicht, warum dies nur Sie im Falle einer drahtlosen Netzwerkverbindung anstelle von verdrahtet beeinflussen würde, aber wenn Sie Webantworten nicht schließen (vorzugsweise mit using Aussagen) würde ich empfehlen, das zu starten mit.

Als nächstes, verfolgen Sie das Netzwerk mit WireShark. Das sollte es wirklich leicht machen zu sehen, ob die Anfrage tatsächlich gesendet wird, ob eine Antwort zurückkommt usw.

+0

Vielen Dank für die Antwort Sir. Von "hängt", ich meine, es hängt - schließlich bewegt sich in den catch-Block mit der Ausnahme timeout. Dies ist die erste Anfrage, die der Client sendet, also keine Frage von nicht abgeschlossenen Web-Antworten. Ich werde Wireshark versuchen und sehen, ob es hilft. Vielen Dank. – Sameet

+0

Richtig. Wenn die Anfrage zwar gestellt wird, aber keine Antwort zurückkommt, würde ich die Anfrage von .NET mit der Anfrage des Browsers vergleichen. Ich erwarte nicht, dass es Spaß machen wird, es in einer großen Menge von Details zu betrachten, aber es sollte schließlich helfen. –

Verwandte Themen