带WF的Silverlight双工

时间:2011-11-03 10:38:05

标签: silverlight-4.0 workflow-foundation-4

我已经阅读了以下文章,似乎无法从Silverlight客户端使用双工通信到WF。

这是真的吗?有没有解决这个问题的工作?如果没有,我发现这是一个奇怪的遗漏。

http://msmvps.com/blogs/theproblemsolver/archive/2010/05/03/workflow-4-services-and-duplex-communications.aspx

由于

麦克

1 个答案:

答案 0 :(得分:0)

Silverlight没有将其作为WF4双工通信客户端的原因是工作流程的长期运行性质。正确地说,WF4的原因是客户端在整个工作流程期间不会出现这种情况,因此正常的双工通道(依赖于客户端保持代理对象存活)并不够好。因此,WF4使用持久双工,其中双工回调实际上是完全独立的调用,并且不依赖于原始代理对象。但结果是它要求客户端是WCF ServiceHost,因此需要完整的WCF堆栈。当然,Silverlight只包含WCF堆栈的客户端部分,而不包含ServiceHost,因为浏览器通常不需要它。

到目前为止,还有一个变通方法。如果您知道您的工作流程已经存在很长时间,您可以使用Silverlight轮询双工与标准WCF服务进行通信,并使其与双工工作流程进行通信。

但是,它说,它使架构变得更复杂,而且双工WCF已经是一个复杂且容易出错的野兽,所以我只会在真正需要的时候这样做。