有一個winform應用程序,並希望在其中託管一個WCF服務。我需要將其託管在單獨的應用程序域中嗎?任何建議?託管WCF服務的任何建議?
4
A
回答
4
您不需要將其託管在單獨的域中,但您必須決定是否希望服務請求由UI線程或其他線程處理。這取決於您創建ServiceHost
實例的方式或應用於您的服務類的ServiceBehavior
。
當服務在UI線程中託管時,它可以直接與UI交互,但請求處理是消息循環的一部分,所有服務請求都由單個線程(按順序)處理。處理請求時,不能處理其他窗口事件(包括UI事件)=應用程序凍結。
當服務駐留在不同的線程中時,它的行爲與其他宿主環境中的行爲相同,但不能直接與UI交互 - 您必須使用委託調用。
方法來執行服務於自己的線程中運行:
- 創建和打開
ServiceHost
實例調用Application.Run
(的Windows消息循環的開始) - 以前創建並在單獨的線程
- 開放
ServiceHost
實例在您的服務實施上使用[ServiceBehavior(UseSynchronizationContext = false)]
1
不,您不必將其託管在單獨的AppDomain中。只需託管它。 WinForms在這方面沒有什麼特別的特殊之處。
0
你的應用做什麼?服務是應用程序常規功能的一部分還是完全獨立的邏輯實體?
如果您想要加載和卸載與您的服務相關的資源(例如程序集)而不關閉您的應用程序而不關閉您的應用程序將會使這更容易,但否則我不會看到很多複雜的原因的東西。
只是我的2C。 :-)
0
您可以以Win形式託管,但必須始終保持運行。
還建議您在IIS中託管,以便任何類型的客戶端可用您的服務。
相關問題
- 1. WCF託管選項建議
- 2. 託管WCF服務
- 3. WCF服務託管
- 4. 託管日誌服務器的建議?
- 5. 使用IIS託管WCF服務的C#中的任務管理
- 6. Windows服務託管的TCP WCF服務
- 7. Windows服務與託管的WCF服務
- 8. 託管在Windows服務託管的WCF服務
- 9. REST和託管WCF服務
- 10. WCF服務自託管
- 11. 在託管WCF服務WAS
- 12. DataContractException在託管WCF服務
- 13. WCF和託管Windows服務
- 14. 自託管WCF服務
- 15. 關於wcf服務託管
- 16. 託管WCF服務庫
- 17. 自我託管wcf服務
- 18. Azure API App服務託管wcf服務
- 19. IIS WCF服務託管與Windows服務
- 20. WCF服務託管服務器
- 21. 作爲Windows服務託管WCF服務
- 22. 託管Web服務/ WCF服務?
- 23. 如何在另一個WCF服務中託管WCF服務?
- 24. 將WCF作爲Windows服務託管時的任何限制?
- 25. 如何在WAS中託管WCF服務?
- 26. 如何託管公共WCF服務?
- 27. WCF服務安全建議
- 28. IIS可以託管WCF服務執行後臺任務嗎?
- 29. 託管的Windows服務中託管的WCF服務使用WCF服務應用程序連接
- 30. 託管服務器上的WCF異常
我很想知道您爲什麼在您的服務中託管您的服務一個Windows窗體應用程序。如果不是主持一場比賽會更好。 Windows服務b。 IIS(如果這是一個選項),而不是? – InSane 2011-01-20 03:30:07