远程设置超时

时间:2010-06-23 14:35:19

标签: c# .net timeout remoting .net-remoting

我的.NET应用程序中使用了

brownfield远程处理。我们决定为我们的远程处理方法设置超时。

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);

问题是看起来超时不起作用。我通过在调用的代码中设置System.Threading.Thread.Sleep(5 * 1000);来检查它。 IpcClientChannel不支持超时的原因是什么?

如何设置超时?

1 个答案:

答案 0 :(得分:5)

设置IpcClientChannel超时的属性名称不是“超时”。名称为“connectionTimeout”。请参阅 Client Channel Properties MSDN)。然后它应该工作。

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);