Remoting over internet (events)
-
Hi, I've written a client/server application using remoting. This works fine locally / on a LAN / and over the internet, but it fails when the client is behind a firewall or router. The internet clients can connect to the server and run stuff, but when they subscribe to an event, these events are not received (and the server bombs out trying to send the event). My understanding is that when a client subscribes to an event, it listens on a self assigned port for these events which are fired... the details of this port are sent to the server, so that it knows where to send these events. However, the IP address of the client machine isn't an external IP address, it's local to their LAN, and any outgoing requests are routed through their network's external address. So, when the server tries to send back to the client, it has an address of 192.168.0.1 or whatever. Is there some way to tell remoting that the client (or as it becomes a server when it is waiting for an event) that it is behind a firewall.. here's the address of it. I've tried setting the machineName property of the http channel, but it still failed, although I feel like I might be barking up the right tree. Can anyone help please??? Rich.
-
Hi, I've written a client/server application using remoting. This works fine locally / on a LAN / and over the internet, but it fails when the client is behind a firewall or router. The internet clients can connect to the server and run stuff, but when they subscribe to an event, these events are not received (and the server bombs out trying to send the event). My understanding is that when a client subscribes to an event, it listens on a self assigned port for these events which are fired... the details of this port are sent to the server, so that it knows where to send these events. However, the IP address of the client machine isn't an external IP address, it's local to their LAN, and any outgoing requests are routed through their network's external address. So, when the server tries to send back to the client, it has an address of 192.168.0.1 or whatever. Is there some way to tell remoting that the client (or as it becomes a server when it is waiting for an event) that it is behind a firewall.. here's the address of it. I've tried setting the machineName property of the http channel, but it still failed, although I feel like I might be barking up the right tree. Can anyone help please??? Rich.
Rich, Check out Ingo Ramners .NET Remoting site at: http://www.ingorammer.com/Software/OpenSourceRemoting/BiDirTcpChannel.html His Bidirectional channel will solve the problem you are having of getting events when behind a firewall. Good luck, John
-
Rich, Check out Ingo Ramners .NET Remoting site at: http://www.ingorammer.com/Software/OpenSourceRemoting/BiDirTcpChannel.html His Bidirectional channel will solve the problem you are having of getting events when behind a firewall. Good luck, John
Thank You, this is the first piece of useful information I've found on this subject after almost a week of searching the internet / forums. I've literally just bought Ingo's book, and was hoping that would explain it all to me. Thanks again. Rich.
-
Thank You, this is the first piece of useful information I've found on this subject after almost a week of searching the internet / forums. I've literally just bought Ingo's book, and was hoping that would explain it all to me. Thanks again. Rich.
Hi Richard, Ingo's book has been very helpful to me. Also be sure to check out the Remoting newsgroup at microsoft.public.dotnet.framework.remoting Also check out http://test.labdotnet.com/GenuineChannels/GenuineChannels.html Its a commercial product which includes a bidirectional TCPIP channel that also includes compression and more. Only $49 and includes source. I have tried his demo and will be purchasing the full product shortly. Looks like a good value for $49. John