I have a Windows Service that hosts three different duplex WCF channels. Clients can connect to have updates sent to them via their callback contract. Essentially there are three pub-sub channels.
This service takes a long time to bounce when clients are connected. The call to ServiceHost.Close
takes 10 seconds to return (so the service takes 30+ seconds to stop.) It turns out that my closeTimeout
in config is 10 seconds. Changing this value indicates that this is the cause of the problem.
What do I have to do to close the channel promptly? I don't like the idea that something is timing out. I could call Abort
, but it seems that there must be a better way. I haven't seen this on non-duplex channels before, so assume it's something to do with it being duplex.
Ideally the client would be notified immediately that the channel had faulted, so that the user could see straight away that updates have halted.
"Ideally the client would be notified immediately that the channel had faulted, so that the user could see straight away that updates have halted."
The WCF client instance has events you can subscribe to:
The Faulted event is raised as soon as your duplex channel halted from any reason.
I wonder why is your is your service host taking 30+ seconds to close. Can you provide some sample code?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With