C# Reflection - Nasty bug??

  • Thread starter Thread starter stork
  • Start date Start date
In specific (repeatable) cases the client fails to connect to the server
running on the same machine. The client receives the
System.Net.Sockets.SocketException: "A socket operation was attempted to an
unreachable host" although the server is still running and listening on the
right port (45326 my case).

This happens when LAN (or internet) connection is present upon starting the
server and then desactivated (cable is removed). After LAN is no accessible,
the client cannot connect to the server anymore (note that they are on the
same machine!). When the cable is reinserted, the connection works again!

On the other side if server is started when LAN is not present, it will work
no matter what.

I put more details here:

http://www.david13.com/cases/DotNet/Remoting-BUG-Server-Inaccessible-From-Local-Machine/

I would kindly ask you to check it and help me with advice so we can confirm
a bug or find a solution together. Thank you very much!

David Krmpotic
http://www.david13.com
 
hmm I cannot do that.
I cannot connect to the machine with the server if the cable is unplugged..
 
I have seen this similar problem but with other network based apps (not
necessarily remoting), is it possible for you to indicate that all
connections in your program must go to localhost or 127.0.0.1? That will
force all packets to go through the internal network loop.

Also it has also occurred to me for you to check your firewall settings on
the local computer and make sure the port is allowed, even if it is in the
same machine the firewall can block packets going into that port.
 
Thank you Alex.
I don't have a firewall on the affected machine. What do you mean exactly by
"is it possible for you to indicate that all connections in your program
must go to localhost or 127.0.0.1"? I don't quite understand it. Of course I
know what is 127.0.0.1 and localhost, but I still don't know what are you
asking. Could you clarify? Thank you.
 
Can you telnet into localhost to the port your server is running and get
some kind of a prompt instead of "Connection cannot be established?" like

dos prompt> telnet localhost 12345

12345 is port number, I don't remember exactly which port you were using so
drop your port number in place of 12345. If you don't get a prompt your
server is:

1) Not accepting connections
2) Being blocked

Thats where I would start.
 
Alex,

oh, ok.. thank you!

So I did it and I discovered two things.. After the problem happens, I can
still get the prompt although I cannot connect to the server with my client.

The second thing I discovered is that the same thing happens if I use the
WLAN connection and then take out the card. It is not just the ethernet.

What step would you suggest next? Many thanks!

David
 
Back
Top