Bonjour
j'essaye de mettre en place un client-serveur en remoting.
Lorsque j'instancie mon objet distant (de type IADMADSearcher ) et que j'appelle une méthode pour la première fois cela fonctionne. Mais dès que je fait un second appel de méthode, je me retrouve avec l'erreur
Mon serveurUne connexion existante a dû être fermée par l'hôte distant
client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 // Création d'un nouveau canal d'écoute sur le port 1069 IChannel channel = new TcpChannel(1069); // Enregistrement du canal dans l'annuaire ChannelServices.RegisterChannel(channel,false); //Démarrage de l'écoute en exposant l'objet en Singleton RemotingConfiguration.RegisterWellKnownServiceType( typeof(ADMServer.RemoteOperations.GbbRemoteOperations), "RemoteOperation", WellKnownObjectMode.Singleton); RemotingConfiguration.RegisterWellKnownServiceType( typeof(ADMServer.Global.ADMObjManaged), "ADMObjManaged", WellKnownObjectMode.Singleton); RemotingConfiguration.RegisterWellKnownServiceType( typeof(ADMServer.Ugm.UgmObjManaged), "UgmObjManaged", WellKnownObjectMode.Singleton); RemotingConfiguration.RegisterWellKnownServiceType( typeof(ADMServer.Global.ADMADSearcher), "ADMADSearcher", WellKnownObjectMode.Singleton); RemotingConfiguration.RegisterWellKnownServiceType( typeof(ADMServer.RemotingModule), "RemotingModule", WellKnownObjectMode.Singleton);
Voila. Normalement je fait en sorte d'avoir une seule instance de IADMADSearcher. Dois je rajouter des channel ? si oui comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 static IADMADSearcher _remoteADSearcher; if (_remoteADSearcher == null) _remoteADSearcher = GetIADMADSearcher(); public static IADMADSearcher GetIADMADSearcher() { IADMADSearcher objIADMADSearcher; objIADMADSearcher = (IADMADSearcher)Activator.GetObject(typeof(IADMADSearcher), "tcp://" + ADManagementIHM.Properties.Settings.Default.ServerName + ":" + ADManagementIHM.Properties.Settings.Default.ServerPort + "/ADMADSearcher"); return objIADMADSearcher; }
Merci
Partager