I'm using .NET remoting for some simple observer-based IPC. I've been having two problems:
- If I don't make any calls from the client on a remote object for a few minutes, an error is thrown when I do try to call, specifying that the connection has been dropped. How can I keep this alive?
I can't seem to accept clients from other computers over TCP. I'm using a TcpChannel configured as such:
BinaryServerFormatterSinkProvider serverProv = new BinaryServerFormatterSinkProvider(); serverProv.TypeFilterLevel = TypeFilterLevel.Full; BinaryClientFormatterSinkProvider clientProv = new BinaryClientFormatterSinkProvider(); IDictionary props = new Hashtable(); props["port"] = port; TcpChannel channel = new TcpChannel( props, clientProv, serverProv ); ChannelServices.RegisterChannel( channel, false ); RemotingConfiguration.RegisterWellKnownServiceType( typeof( Controller ), "Controller", WellKnownObjectMode.Singleton );
And when a client app tries to connect ( m_Controller = (Controller)RemotingServices.Connect( typeof( Controller ), "tcp://" + ip + ":2594/Controller" ) )
, it always times out. I am not behind a firewall and my ports are forwarded properly. I can use this port for socket-based apps but not for remoting for some reason. Please help!