我的情况是我使用wsDualHttpBinding作为绑定。
但我注意到了一些意想不到的事情。当我尝试向服务操作发送请求时,我的代码正在处理回调消息(我已经将Thread.Sleep放在那里进行模拟),然后服务调用被卡住(甚至可以获得时间)直到回调消息被完全处理。它们不应该是独立的,或者通道当时只能处理一条消息,无论是服务请求还是回叫消息都无关紧要?我正在使用相同的频道,无论是接收回叫消息还是发送新请求。此应用程序作为服务运行,因此不涉及UI。
答案 0 :(得分:0)
尝试
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]
在单线程配置中支持回调是一种特殊模式。
http://msdn.microsoft.com/en-us/library/system.servicemodel.concurrencymode.aspx