Only one callback at a time - WCF limitation?

248 views Asked by At

I stuck on this one for about two weeks now - So could someone tell me, is there a limitation from WCF that only one callback at a time can be handled by a callback object? I have tried just about anything I can find in trying to resolve this issue still can't get any place.

I created a very simple app: a client invokes a service then the service makes two callbacks to the client at the same time: callback A, which takes a long time to return; then callback B, calls back repeatedly in a loop even when A is in processing. The problem is, B will never get through when A is in processing. But as soon as A returns, B will get through right away.

Here are the things I have tried: 1. Set ConcurrencyMode to Multiple or Reentrant on both client and service; 2. Set UseSynchronizationContext to False on both client and service; 3. Start service invocation from a worker thread on the client; 4. Creates proxy (service channel) on a worker thread on the client; 5. Start both callbacks on their own worker thread on the service; 6. Making both callbacks as Oneway.

None of these solved issue. The only thing I can think now is that this may be a limitation from WCF. So if someone can shed some light on this it will be greatly appreciated.

1

There are 1 answers

1
Brice2Paris On

Could you try to make an async proxy? When you left click on you're project then clic add Service Reference, then check Generate asynchronous operations.

You will have a client that use event to callback returns. And if I'm not wrong, each callback are done in different threads.