Remoting set timeout

2019-05-06 16:04发布

.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?

1条回答
Luminary・发光体
2楼-- · 2019-05-06 16:45

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);
查看更多
登录 后发表回答