我在这个问题上坚持了大约两个星期 - 所以有人可以告诉我,WCF 是否有限制,一次只能由一个回调对象处理一个回调?我已经尝试了几乎所有我能找到的解决这个问题的方法,但仍然无法获得任何地方。
我创建了一个非常简单的应用程序:客户端调用一个服务,然后服务同时向客户端发出两个回调:回调 A,需要很长时间才能返回;然后回调 B,即使 A 正在处理中,也会在循环中重复回调。问题是,当 A 正在处理时,B 永远不会通过。但是A一回来,B就会马上通关。
以下是我尝试过的事情: 1. 在客户端和服务上将 ConcurrencyMode 设置为 Multiple 或 Reentrant;2. 在客户端和服务上将 UseSynchronizationContext 设置为 False;3. 从客户端的工作线程开始服务调用;4. 在客户端的工作线程上创建代理(服务通道);5. 在服务上各自的工作线程上启动两个回调;6. 将两个回调都设为 Oneway。
这些都没有解决问题。我现在唯一能想到的是,这可能是 WCF 的限制。因此,如果有人可以对此有所了解,将不胜感激。