There's a performance problem we are facing that we are unable to fix using DuplexChannels.
The first call made by the client to the server reaches the server instantly. The first call made by the server to the first client using a Callback proxy will take several seconds to reach the client. All subsequent calls to the client (as well as
other clients) will reach and execute instantly.
The client connects to the Server using a proxy to IServiceProvision, supplies an instance to an implementation of IClientCallback and calls IServiceProvision.Start(). The server instantly processes the call and makes an asynchronous call to IClientCallback.DoWork(),
which takes several seconds to enter the client's DoWork() implementation. The remainder of the execution then runs smoothly. Also, the server will experience such a slowdown only for the very first call of the first client that connects to it.
Is it normal for the Callback interface to take so much time to warmup, only on the first call to the first client?
Below is the full source code. Thanks for any information you may provide.
Shared Class Library
[ServiceContract(Namespace = "http://test/IService", CallbackContract = typeof(IClientCallback))]
public interface IServiceProvision
View Complete Post