Question

I have two WCF apps communicating one-way over named pipes. All is nice, except for one thing: Normally, the request/response cycle takes zero (marginal) time. However, if there was a time span of, say, half a minute without any communication, the request/response increases up to ~300-500ms.

I looked around the net and I got the idea of using a heart beat/ping mechanism to keep the communication channel busy. Using trial and error I found that when doing a request each 10 seconds, the response times stay low. Starting at around 15s intervals, the "hiccup" response times begin to appear.

Now I'm wondering where this phenomenon is originating from. I tried setting alle conceivable timeouts on both sides to > 1 minute, but that did not help.

Can anybody explain what's going on there?

Was it helpful?

Solution

Check out Wenlong Dong's blog post, Why Does WCF Become Slow After Being Idle For 15 Seconds?

The post also includes a workaround until it gets fixed.

OTHER TIPS

Is it possible that the idling process is being paged to disk? If you keep the processes at both ends busy, but don't make the connection busy, does it still happen?

That may well not be it, but it's possibly worth a try.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top