我想要實現一個WCF服務,該服務會立即響應調用者,但會排隊等待稍後處理的異步作業。做這件事的最好方法是什麼?我已閱讀how to implement an asynchronous service operation上的MSDN文章,但該解決方案似乎仍然需要完成任務才能響應調用者。如何創建異步WCF服務
2
A
回答
1
有很多方法可以完成此操作,具體取決於您想要執行的操作以及您正在使用的技術(例如,除非您使用silverlight,否則您可能不需要讓應用程序異步調用該服務)實現你的目標將是讓你的服務方法啓動一個線程來執行大量的處理並立即返回。
另一種方法是創建某種請求(例如,在某種數據存儲中創建條目)並返回。另一個過程(例如,Windows服務等)可以接收請求並執行處理。
1
任何WCF服務可以由異步 -
一個有關WCF的好處之一是,你可以寫同步服務。當您在客戶端添加ServiceReference時,您可以選擇生成異步方法。
這會自動使服務調用異步。該服務完成後將返回,但客戶端將獲得兩種方法 - BeginXXX和EndXXX,以及XXXAsync +一個XXXCompleted事件,它們都允許完全異步操作。
+0
這裏的問題是我不控制客戶端代碼。客戶端實際上創建了我的WCF服務必須遵守的接口,並且從我所知道的情況來看,他們只是想將消息發送到我的WCF服務並立即響應。然後,當我的服務器成功處理了初始請求時,他們希望它發送一個單獨的請求到他們的最後。 實質上,他們希望我的WCF服務異步工作,而不是更改其客戶端代碼以異步調用我的服務。 –
相關問題
- 1. WCF服務 - 異步如何?
- 2. WCF服務異步/同步
- 3. 創建異步Web服務
- 4. 如何異步調用wcf服務
- 5. 2異步WCF服務
- 6. 異步WCF服務超時
- 7. 實現異步WCF服務
- 8. WCF服務:MaxReceivedMessageSize(異步)
- 9. 異步調用wcf 4.5 WCF服務
- 10. 不使用服務引用創建異步WCF客戶端
- 11. 創建一個異步 - 單線程WCF服務
- 12. WCF異步客戶端調用WCF異步服務
- 13. 客戶端異步WCF Vs服務器端異步WCF
- 14. WCF服務創建
- 15. 創建WCF服務
- 16. WCF服務創建
- 17. 如何爲同步服務實現異步wcf客戶端
- 18. WCF服務調用異步其他WCF服務
- 19. 如何創建一個WCF服務
- 20. 如何爲WCF Web服務創建ArrayOfString?
- 21. 如何使用Mono創建WCF服務?
- 22. 如何爲WCF服務創建全局異常處理程序?
- 23. 客戶端異步調用WCF服務
- 24. AppFabric異步WCF服務持續時間
- 25. WCF服務器 - 異步方法
- 26. 在異步WCF服務中使用CCR
- 27. WCF異步服務器端處理
- 28. 異步WCF Web服務負載測試
- 29. 異步調用WCF服務在Application_Exit
- 30. 異步客戶端服務器WCF
如果是提交和遺忘操作,則可能需要執行線程或委託,並在Web服務請求立即完成時運行該操作。 但問題是:當流程完成後,您是否需要通知客戶?這就是當事情變得棘手時,因爲這需要服務訂閱或輪詢客戶端輪詢來檢查作業狀態。以下可能會有所幫助:http://stackoverflow.com/questions/1537302/subscribe-to-events-within-a-wcf-service –
@RickStrahl當流程完成時,我確實需要通知客戶。但是,他們有一套自己的WCF服務,我可以將這些結果發佈到。聽起來好像使用代理是最簡單的方法。 –