我正在嘗試編寫一些內容來幫助我以自定義的方式監視我的WCF服務。爲此,我的意圖是編寫一個實現服務合同的類,讓它稱爲IMonitorService,並且每當我想要託管我的任何常規服務時,讓我們說IBusinessService,我希望能夠爲我創建正常的端點業務服務以及實施IMonitorService的端點。這樣我可以從我所有的服務中調用所有監視器端點並閱讀我需要的內容。這甚至有可能嗎? 我不是說這是可能做到這一點的方式,但這樣的事情將是巨大的:來自同一WCF服務主機中不同服務的多個端點
var serviceHost = new ServiceHost(typeof(BusinessService), baseAddresses);
var monitorService = new MonitorService(servicehost.Description);
serviceHost.AddServiceEndpoint(typeof(IMonitorService), whatever_binding, monitorService);
我知道微軟已經這樣做了IMetadataExchange接口和發現端點,但我似乎無法理解怎麼辦它自己。那些如何實施?
目前我正在訴諸開放的2個服務主機,並將他們的開啓/關閉事件鏈接到主要關閉監視之一,並且不太理想。即使它不像我希望的那麼簡單,我仍然樂於接受比我現在所做的更容易的選擇。
總之,沒有(至少據我所知)。服務主機只能託管一個服務(可以有多個端點)。我相信'IMetadataExchange'端點是一個特例。 – Tim