4

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

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Andrei Schneider
  • 3,618
  • 1
  • 33
  • 41

1 Answers1

5

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);
Ian
  • 1,221
  • 1
  • 18
  • 30
Jehof
  • 34,674
  • 10
  • 123
  • 155
  • 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. – Andrei Schneider Jul 08 '10 at 11:04
  • @MegaHerz Sorry, but I don't comprehand. You set connectiontimeout to 1000ms, and server sleeps for 5000ms >1000ms. It definately times out. Why do not you get an exception? You mean it's a bug? – Gqqnbig Feb 11 '12 at 13:19
  • If you're looking for the **Client Channel Properties** page, it's moved. It is now on MSDN [here](https://msdn.microsoft.com/en-us/windows/bb397839(v=vs.120)). – Ian Apr 10 '19 at 15:18