Remoting set timeout

Andrei Schneider picture Andrei Schneider · Jun 23, 2010 · Viewed 9.8k times · Source

.NET remoting is used in my brownfield application. We decided to set timeouts for our remoting methods.

System.Collections.IDictionary properties = new System.Collections.Hashtable();
properties["name"] = Ipc_Channel_Name;
properties["timeout"] = 1 * 1000;

IChannel clientChannel = new IpcClientChannel(properties, null);
ChannelServices.RegisterChannel(clientChannel, false);

The problem is that it seems that timeout doesn't work. I checked it by setting System.Threading.Thread.Sleep(5 * 1000); in the invoked code. Is the reason that IpcClientChannel doesn't support timeouts?

How do I set the timeout?

Answer

Jehof picture Jehof · Jul 8, 2010

The name of property to set the timeout of the IpcClientChannel isn´t "timeout". The name is "connectionTimeout". See Client Channel Properties (MSDN). Then it should work.

System.Collections.IDictionary properties = new System.Collections.Hashtable();
properties["name"] = Ipc_Channel_Name;
properties["connectionTimeout"] = 1 * 1000;

IChannel clientChannel = new IpcClientChannel(properties, null);
ChannelServices.RegisterChannel(clientChannel, false);