I have a WCF service host Im hosting in IIS that defines a few services and one of those services has a number of endpoints.
The endpoints that belong to the same service are there to let me specify different contracts and they all use the same binding and behaviour.
For the most part it works fine until a specific situation occurs:
The service gets stuck when one of the endpoints tries to make a call to another endpoint in the same service. Consider the following example:
<service behaviorConfiguration="GeneralServiceBehavior" name="Base">
<endpoint address="/Addresses" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingConfig" contract="CommonObjects.IAddresss" />
<endpoint address="/Attachments" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingConfig" contract="CommonObjects.IAttachments" />
In the example above if a call is made from IAttachments implementor back to this service to access the IAddress endpoint I get stuck in what seems to be a deadlock until I get a timeout on the calling thread and then I see the call come through
to the IAddress endpoint, but at that point its already too late as the channel is closed.
I have looked at the InstanceContext and ConcurrencyMode. This particular servic
View Complete Post