我已经阅读了以下文章,似乎无法从Silverlight客户端使用双工通信到WF。
这是真的吗?有没有解决这个问题的工作?如果没有,我发现这是一个奇怪的遗漏。
由于
麦克
答案 0 :(得分:0)
Silverlight没有将其作为WF4双工通信客户端的原因是工作流程的长期运行性质。正确地说,WF4的原因是客户端在整个工作流程期间不会出现这种情况,因此正常的双工通道(依赖于客户端保持代理对象存活)并不够好。因此,WF4使用持久双工,其中双工回调实际上是完全独立的调用,并且不依赖于原始代理对象。但结果是它要求客户端是WCF ServiceHost,因此需要完整的WCF堆栈。当然,Silverlight只包含WCF堆栈的客户端部分,而不包含ServiceHost,因为浏览器通常不需要它。
到目前为止,还有一个变通方法。如果您知道您的工作流程已经存在很长时间,您可以使用Silverlight轮询双工与标准WCF服务进行通信,并使其与双工工作流程进行通信。
但是,它说,它使架构变得更复杂,而且双工WCF已经是一个复杂且容易出错的野兽,所以我只会在真正需要的时候这样做。