Je suis actuellement en cours d'exécution de la dernière prévisualisation (# 8) et je travaille avec les services WCF. J'utilise MEF pour lire dans les bibliothèques de service WCF. J'ai remarqué que chaque fois que je fais une opération sur l'une des bibliothèques de l'application qui lit dans les bibliothèques, ces bibliothèques WCF ont un AppDomain de 1, mais chaque fois qu'un service WCF reçoit une notification, il a un AppDomain de 2? Y a-t-il un moyen de s'assurer que le service WCF notifié est le même (ou dans le même AppDomain) que celui qui a été lu via MEF? J'ai fondamentalement besoin de lire les données de configuration sur mon service WCF et de m'assurer que les données sont toujours stockées en mémoire, donc quand une notification arrive, j'utilise les données en mémoire pour aider à analyser ce qui a été envoyé.MEF et WCF - Problèmes avec AppDomain
1
A
Répondre
0
Je l'ai compris. J'ai juste besoin d'avoir mon application qui lit dans les DLL via MEF pour dire à la DLL d'être un hôte de service. Le seul inconvénient est que la DLL doit indiquer à l'application toutes les liaisons et les points d'extrémité à utiliser pour que l'application puisse configurer l'hôte de service approprié.
Voici un échantillon de ce que je faisais (juste pour le faire fonctionner, il n'a pas le code pour demander la DLL pour la configuration):
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);
}