1

我目前正在运行最新的预览版 (#8),并且正在使用 WCF 服务。我使用 MEF 读取 WCF 服务库。我注意到,每当我从读取库的应用程序中对其中一个库执行任何操作时,这些 WCF 库的 AppDomain 为 1,但每当 WCF 服务收到通知时,它的 AppDomain 为 2?有没有办法确保收到通知的 WCF 服务与通过 MEF 读入的 WCF 服务相同(或在同一个 AppDomain 中)?

我基本上需要读入我的 WCF 服务上的配置数据,并确保数据始终存储在内存中,因此当收到任何通知时,我将使用内存中的数据来帮助分析发送的内容。

4

1 回答 1

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);
}
于 2009-12-16T21:34:41.657 回答