plusieurs objets distant remoting
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
Citation:
Une connexion existante a dû être fermée par l'hôte distant
Mon serveur
Code:
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); |
client
Code:
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;
} |
Voila. Normalement je fait en sorte d'avoir une seule instance de IADMADSearcher. Dois je rajouter des channel ? si oui comment faire ?
Merci