views:

29

answers:

1

.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. Maybe the reason is that IpcClientChannel doesn't support timeouts? Does anybody know how to set the timeout? Thanks in advance.

A: 

The name of property to set the timeout of the IpcClientChannel isn´t "timeout". The name is "connectiontimeout". See here. 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);
Jehof
Hi, Jehof. Thank you for you answer. From MSDN: "connectiontimeout is An integer that specifies the number of milliseconds to wait for a successful connection. 0 or -1 indicates an infinite timeout period. The default is Infinite." if you set a connectiontimeout to 1*1000 and System.Threading.Thread.Sleep(5 * 1000); in the invoked code, you won't get any exception. It will wait 5 second. I resolved it by modification of the client's code.
MegaHerz