我有一個WCF服務需要調用,以便該調用將觸發2-3小時的處理。我使用Windows C#客戶端應用程序來調用服務,並將超時設置爲所有最大值。當我將它部署到Windows Azure時,由客戶端觸發的WCF進程似乎在某一時刻停止。客戶端不會收到超時異常。我可以使用Azure工作者角色,但只能使用WCF代碼完成該過程,因爲這是一項複雜的操作。換句話說,我不能只將執行簡單編輯/插入操作的工作者角色安排到數據庫中。所以我有種雞和雞蛋的問題。後臺進程需要WCF代碼來執行後臺操作,但是WCF似乎在Azure上停留了一段時間。什麼是在WCF中執行長時間運行的調用的方法,以及如何在Azure上執行長時間運行的調用,該調用需要使用託管的雲服務WCF代碼來執行長時間運行的操作?WCF Azure長時間運行
3
A
回答
2
這是因爲the load balancer。過去的超時時間爲60秒,但幾個月前這個時間增加到「超過60秒」(取決於併發連接)。無論如何,你需要保持連接活着,以避免超時。
我建議你試試在你的WCF客戶端/服務實現這一點:WCF Azure Net.TCP Keep Alive
爲什麼不重新考慮你的架構?而不是依賴於連接(無論什麼原因可以斷開連接),爲什麼不簡單地讓客戶端在隊列中放置消息?您的工作角色從隊列中選取消息,進行2-3小時的處理,一旦完成,它會將消息放入另一個隊列中。最後,客戶端輪詢其他隊列,一旦有消息到達,它就知道該過程已完成。
0
您可以將長時間運行操作所需的代碼放在單獨的項目中。然後,您可以將此項目包含在WCF解決方案和您的工作人員角色解決方案中。
後臺進程將具有完成該操作所需的所有功能。
相關問題
- 1. 長時間運行WCF Singleton
- 2. Azure Schedule長時間運行任務
- 3. Azure Worker執行長時間運行操作失敗
- 4. 長時間運行WCF服務的設置超時
- 5. mpirun運行時間太長
- 6. 長時間運行狀態
- 7. 取消長時間運行
- 8. SQL運行時間太長
- 9. 長時間運行合併
- 10. 長時間運行Flash Player
- 11. 長時間運行SP
- 12. Mongodb長時間運行時間戳
- 13. Windows Azure上的長時間運行(或永遠)任務
- 14. 運行時間非常長的Azure存儲容器命令
- 15. ASP.NET + WCF下的長時間運行線程程序
- 16. WCF中的長時間運行的異步線程
- 17. 長時間運行時泵信息+ C#
- 18. 長時間運行的查詢超時
- 19. WCF數據服務運行時間EDMX
- 20. 在忙於長時間運行的操作時Ping應答WCF服務
- 21. WCF 4.0 REST IIS託管長時間運行1小時後沒有響應
- 22. testthat長時間運行測試模式
- 23. 取消長時間運行IFRAME
- 24. 長時間運行PowerShell腳本凍結
- 25. SignalR長時間運行進程
- 26. 長時間運行過程vb.net
- 27. 取消長時間運行下載
- 28. 處理長時間運行的任務
- 29. php長時間運行腳本
- 30. JSFL一直在運行很長時間