Recent scenario:
1) Local service establishes a duplex channel to a remote service nettcp endpoint.
2) Remote service sends a short message via a subscribed callback every 2 seconds. Nothing more, nothing less.
3) Things ran fine for 45 minutes, and then 10 seconds went by without a message from the remote service. After that, four messages from the service were received in 42ms.
4) Information logged by the remote service shows it faithfully sent its message every 2 seconds. Information logged by the local service clearly shows the delayed delivery.
A similar situation of delayed messages has also been seen on another duplex channel that has regular messages spaced at 10- and 30-second intervals, so it doesn't seem to be connected with the configuration of just this channel. Whatever is wrong is probably common to both of them.
I'm in over my head, trying to learn the ins and outs of WCF in a sink-or-swim situation where I wasn't involved in any of the WCF code generation, so please don't leave out the "beginner's notebook" part of the answer.
What I have tried:
Added a lot of improved exception handling and management of the Channel and ChannelFactory, but the delay throws no exceptions and leaves no incriminating evidence in the MessageLogging svclog.