2011-11-03 15 views

回答

0

原因Silverlight不削減它作爲WF4雙工通信的客戶端是工作流程的長時間運行性質。 WF4的原因,正確的是,客戶端不會在整個工作流程中出現,因此依賴於客戶端保持代理對象的正常雙工通道不夠好。所以WF4使用持續雙工,其中雙工回調實際上是一個完全獨立的調用,並且不依賴於原始代理對象。但結果是它要求客戶端成爲WCF ServiceHost,因此需要完整的WCF堆棧。當然,Silverlight只包含WCF堆棧的客戶端部分,而不包含在瀏覽器中通常不需要的ServiceHost。

至於變通方法。如果您知道您的工作流程很長一段時間不在,則可以使用Silverlight輪詢雙工與標準WCF服務進行通信,並與雙工工作流進行通信。

但這就是說,它使得體系結構更加複雜,雙工WCF已經是一個複雜且容易出錯的野獸,所以我只會在真正需要時做到這一點。