我有一個WCF服務用於配置託管在將用於維護數據庫的Windows服務中的東西。有什麼方法可以訪問託管服務中的WCF服務嗎?或者我應該將數據庫功能移動到另一個WCF服務並將它們託管在Windows服務中?您可以在WCF服務和託管它的Windows服務之間進行通信嗎?
2
A
回答
3
服務類(一個實現服務接口)有一個屬性
OperationContext.Current.Host
,讓你訪問到ServiceHost
實例,它是託管服務。您可以非常輕鬆地訪問該服務主機。
有能夠超越服務主機和操縱或查詢包含服務主機的NT服務沒有內置的方式。但是你總是可以創建你自己定製的ServiceHost後代類,它可以爲你提供對NT服務本身的必要訪問,然後使用這個定製服務主機來實現你的服務。
通過自定義服務主機,你基本上可以做任何你覺得是必要和有益的 - 只是創建ServiceHost
後代,做任何你需要做的!
1
如果「訪問」你的意思是問你是否可以調用服務,那麼,該服務可以爲自身的客戶端。
什麼可能是更好的將是您的服務分爲兩類,一特定的事實,這是一個Web服務,和所有做實際工作的其他部分零件。讓Windows Service調用後面的部分。
0
我這樣做的方法是通過使用自定義InstanceProvider(這允許您使用WCF服務的非默認構造函數)將共享對象傳遞到WCF服務的構造函數中。
然後,共享對象允許WCF服務與Windows服務(或任何其他可訪問共享對象的對象)「交談」。
相關問題
- 1. 我可以在Windows服務中託管WCF服務嗎?
- 2. 在Windows服務和Exchange服務器之間進行通信
- 3. 您可以在單個Windows服務中託管多個WCF進程嗎?
- 4. Windows服務和網絡服務之間的進程間通信
- 5. 在自託管中的兩個WCF服務之間的通信服務器
- 6. Windows服務託管的TCP WCF服務
- 7. IIS WCF服務託管與Windows服務
- 8. 我可以在Windows服務中託管(自我託管)WCF服務並通過http公開它?
- 9. 多個客戶端可以訪問Windows服務中託管的WCF服務嗎?
- 10. Windows託管的WCF服務可以使用HTTPS嗎?
- 11. WCF服務託管在Windows服務通過網絡TCP
- 12. Odata服務可以作爲Windows服務託管嗎?
- 13. Windows託管服務可以成爲wcf客戶端嗎?
- 14. WCF服務託管在Windows服務將無法正常運行
- 15. 在Windows 2008的Windows服務中託管WCF(mex endpoint)服務
- 16. 開發Windows服務以在SQL服務器數據庫和Web服務之間進行通信
- 17. 自我託管WCF服務上的WCF和客戶端通信
- 18. 託管WCF服務
- 19. WCF託管在Windows服務+網頁中?
- 20. 在windows服務中託管的WCF服務的異步調用
- 21. 在Windows服務中託管的WCF服務(basicHttpBinding)的WSDL URL
- 22. 託管在Windows服務上的WCF服務中的log4net
- 23. WPF客戶端通過網絡與WCF Windows服務進行通信可行嗎?
- 24. 部署基於TCP的WCF服務,託管在Windows服務中
- 25. 在Windows服務中託管WCF服務的問題
- 26. 在Windows服務中託管的WCF服務上使用證書
- 27. 在Windows服務中託管WCF服務的框架
- 28. 在Windows服務中託管的WCF服務
- 29. 發現WCF託管的Windows服務
- 30. 在託管WCF服務WAS
不知道我能做到這一點。相當漂亮。 – InTheFlatField 2010-02-11 17:27:41
需要將OperationContext.Current.Host返回的引用強制轉換爲MyCustomServiceHost類。由於我的wcf服務項目被windows服務項目引用,所以這個自定義的ServiceHost類必須在wcf項目中。所以它變得棘手,除非我失去了一些東西。 – maulik13 2014-02-24 14:43:09
@ Maulik13:如果你想使用自己的'MyCustomServiceHost'的*定製*功能 - 那麼是的,你必須轉換參考該類型的變量。和** NO **,自定義服務主機類不必在WCF項目內部 - 它基本上可以在任何地方生活(當然,它需要**參考WCF項目 - 知道它託管什麼) – 2014-02-24 14:45:39