1

我在这个问题上坚持了大约两个星期 - 所以有人可以告诉我,WCF 是否有限制,一次只能由一个回调对象处理一个回调?我已经尝试了几乎所有我能找到的解决这个问题的方法,但仍然无法获得任何地方。

我创建了一个非常简单的应用程序:客户端调用一个服务,然后服务同时向客户端发出两个回调:回调 A,需要很长时间才能返回;然后回调 B,即使 A 正在处理中,也会在循环中重复回调。问题是,当 A 正在处理时,B 永远不会通过。但是A一回来,B就会马上通关。

以下是我尝试过的事情: 1. 在客户端和服务上将 ConcurrencyMode 设置为 Multiple 或 Reentrant;2. 在客户端和服务上将 UseSynchronizationContext 设置为 False;3. 从客户端的工作线程开始服务调用;4. 在客户端的工作线程上创建代理(服务通道);5. 在服务上各自的工作线程上启动两个回调;6. 将两个回调都设为 Oneway。

这些都没有解决问题。我现在唯一能想到的是,这可能是 WCF 的限制。因此,如果有人可以对此有所了解,将不胜感激。

4

1 回答 1

0

你能尝试做一个异步代理吗?当您左键单击您的项目然后单击添加服务参考,然后检查生成异步操作。

您将有一个使用事件回调返回的客户端。如果我没记错的话,每个回调都是在不同的线程中完成的。

于 2013-08-09T12:56:15.237 回答