title: WCF - Closing a duplex ServiceHost blocks for CloseTimeout duration if closed when client(s) connected
body: <p>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.</p>
  
  <p>This service takes a long time to bounce when clients are connected.  The call to <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.servicehost.close.aspx" rel="noreferrer"><code>ServiceHost.Close</code></a> takes 10 seconds to return (so the service takes 30+ seconds to stop.)  It turns out that my <code>closeTimeout</code> in config is 10 seconds.  Changing this value indicates that this is the cause of the problem.</p>
  
  <p>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 <code>Abort</code>, 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.</p>
  
  <p>Ideally the client would be notified immediately that the channel had faulted, so that the user could see straight away that updates have halted.</p>