MEF и WCF - проблемы с AppDomain - PullRequest
       11

MEF и WCF - проблемы с AppDomain

1 голос
/ 15 декабря 2009

В настоящее время у меня запущена последняя версия предварительного просмотра (# 8), и я работаю со службами WCF. Я использую MEF для чтения в сервисных библиотеках WCF. Я заметил, что всякий раз, когда я выполняю какую-либо операцию с одной из библиотек из приложения, которое читает в библиотеках, эти WCF-библиотеки имеют AppDomain, равный 1, но всякий раз, когда служба WCF получает уведомление, она имеет AppDomain, равный 2? Есть ли способ убедиться, что служба WCF, которая получает уведомление, является такой же (или в том же домене приложения), что и та, которая была прочитана через MEF?

Мне нужно прочитать данные конфигурации в моей службе WCF и убедиться, что данные всегда хранятся в памяти, поэтому при получении любого уведомления я использую данные в памяти для анализа того, что было отправлено.

1 Ответ

0 голосов
/ 17 декабря 2009

Я понял это. Мне просто нужно, чтобы мое приложение читало в DLL-файлах через MEF, чтобы указать, что 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);
}
...