2009-12-15 85 views
1

我目前正在運行最新的預覽(#8),並且正在使用WCF服務。我使用MEF來讀取WCF服務庫。我注意到,每當我在庫中讀取的應用程序的某個庫上執行任何操作時,那些WCF庫的AppDomain爲1,但是每當WCF服務得到通知時,它都有一個2的AppDomain?有沒有辦法確保獲得通知的WCF服務與通過MEF讀取的WCF服務相同(或在同一AppDomain中)?MEF和WCF - AppDomain問題

我基本上需要讀取我的WCF服務中的配置數據,並確保數據總是存儲在內存中,因此當有任何通知進入時,我使用內存中的數據來幫助分析發送的內容。

回答

0

我想通了。我只需要讓我的應用程序通過MEF在DLL中讀取,以便將DLL作爲服務主機。唯一的缺點是DLL必須告訴應用程序使用所有綁定和端點,以便應用程序可以設置合適的服務主機。

這裏是我做了什麼(這只是爲了工作,它沒有代碼詢問DLL的設置)的樣本:

foreach (MYINTERFACE mod in this.Modules) 
{ 
    ServiceHost serviceHost = new ServiceHost(
     mod, new Uri[] { new Uri("BINDING URL") }); 
    var binding = new NetTcpBinding(); 
    binding.Security.Mode = SecurityMode.None; 
    var serviceEndpoint = serviceHost.AddServiceEndpoint(
     typeof(ENDPOINT TYPE), binding, ""); 
    serviceHost.Open(); 
    this.ServiceHosts = new List<ServiceHost>(); 
    this.ServiceHosts.Add(serviceHost); 
}