一次只有一个回调-WCF限制



我在这个问题上坚持了大约两周-有人能告诉我,WCF是否有一个限制,一个回调对象一次只能处理一个回调?在试图解决这个问题的过程中,我已经尝试了几乎所有我能找到的东西,但仍然没有得到任何位置。

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

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

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

你能尝试制作一个异步代理吗?当您左键单击您的项目,然后clic添加服务引用,然后选中生成异步操作。

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

最新更新