2009-12-15 62 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); 
}