views:

270

answers:

0

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.