We encountered a similar problem with the self-service WCF interface, which provided a synchronous request / response web service for an asynchronous (2 one-way service call) backend request. At the beginning of our testing, we noticed that after a certain amount of time our service stopped responding to new requests. After some research, we found that whenever the backend service (beyond our control) did not send a response, we continued to wait indefinitely, and therefore we closed our client connection.
We fixed the problem by providing the configuration value "timeout", so we will respond to the client and close the connection. We used something like the following ...
Task processTask = Task.Factory.StartNew(() => Process(message)); bool isProcessSuccess = processTask.Wait(shared.ConfigReader.SyncWebServiceWaitTime); if (!isProcessSuccess) { //handle error β¦ }
The following link, which provides information on WCF Service performance counters, can help further determine if calls are closed as expected. http://blogs.microsoft.co.il/blogs/idof/archive/2011/08/11/wcf-scaling-check-your-counters.aspx
Hope this helps. Yours faithfully,
Seymour
source share