I\'m writing a service that will only get calls from the local host. Performance is important so I thought I\'d try the NetNamedPipeBinding instead of NetTcpBinding and see
My experience is that, when using NetNamedPipes, the "ReceiveTimout" on the binding functions like an "Inactivity Timeout" rather than a receive timout. Note that this different than how a NetTCPBinding works. With TCP, it really is a receive timeout and there's a separate inactivity timeout you can configure via reliable messaging. (It's also appears to be contrary to the SDK documentation, but oh well).
To fix this, set the RecieveTimout to something big when you create the binding.
For example, if you are creating your binding procedurally...
NetNamedPipeBinding myBinding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
myBinding.ReceiveTimeout = TimeSpan.MaxValue;
Or, if you care creating your binding declaratively...