OVH Cloud OVH Cloud

Probleme avec .NET Remoting

5 réponses
Avatar
Frédéric Caplet
J'ai un gros problème avec .NET Remoting et je commence a désepérer d'y
trouver une solution.


Code coté serveur.

BinaryServerFormatterSinkProvider provider = new
BinaryServerFormatterSinkProvider()
provider.TypeFilterLevel =
System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
IDictionary props = new Hashtable();
props["port"] = 12048;
Channel = new TcpServerChannel(props,provider);
ChannelServices.RegisterChannel(Channel,true);

RemotingConfiguration.RegisterWellKnownServiceType(typeof(DistantObject),
"MonObjetDistant", WellKnownObjectMode.SingleCall);



Code coté client.

BinaryClientFormatterSinkProvider provider = new
BinaryClientFormatterSinkProvider();
IDictionary props = new Hashtable();
props["port"] = 12048;
Channel = new TcpClientChannel(props, provider);
ChannelServices.RegisterChannel(Channel, true);

IDistantObject obj =
(IDistantObject)Activator.GetObject(typeof(IDistantObject),
"tcp://localhost:12048/MonObjetDistant");


L'appel de la fonction: obj.TestFonction(TestParam) génère l'exception
suivante:
Ce proxy distant n'a pas de récepteur de canal, ce qui signifie que le
serveur ne possède pas de canaux serveur inscrits à l'écoute ou que
cette application ne possède pas de canal client approprié pour
communiquer avec le serveur.

Le canal n'est il pas correctement enregistré tant du coté serveur que
client? d'ailleur si j'utilise un port erroné lors de la création de
l'objet la fonction me retourne l'exception "l'ordinateur a expressement
refusé la connection".

Si quelq'un a une idée, je suis preneur...

Cordialement.
Frédéric Caplet.

5 réponses

Avatar
ftrl
Frédéric Caplet a écrit :

Si quelq'un a une idée, je suis preneur...



Es-tu sûr de pouvoir passer True en tant que paramètre ensureSecurity à
RegisterChannel ?

Honnêtement, je n'ai pas trouvé beaucoup d'info au sujet de ce
paramètre. D'après ce que j'ai compris, il permet de faire en sorte que
que le stream utilisé est un stream "Negotiated". Mais je n'ai pas
approfondi. De mon côté, je laisse à False et ça roule.

Jean
Avatar
Frédéric Caplet
ftrl a écrit :
Frédéric Caplet a écrit :

Si quelq'un a une idée, je suis preneur...



Es-tu sûr de pouvoir passer True en tant que paramètre ensureSecurity à
RegisterChannel ?

Honnêtement, je n'ai pas trouvé beaucoup d'info au sujet de ce
paramètre. D'après ce que j'ai compris, il permet de faire en sorte que
que le stream utilisé est un stream "Negotiated". Mais je n'ai pas
approfondi. De mon côté, je laisse à False et ça roule.

Jean



Merci Jean,

J'ai eu bon espoir puisque je n'avais pas cherché de ce coté.
Malheureusement, même ensureSecurity à false en tant que paramètre pour
RegisterChannel produit toujours l'exception...

Merci tout de même pour l'aide.

Frédéric.
Avatar
ftrl
Frédéric Caplet a écrit :

J'ai eu bon espoir puisque je n'avais pas cherché de ce coté.
Malheureusement, même ensureSecurity à false en tant que paramètre pour
RegisterChannel produit toujours l'exception...



J'ai vu que le channel n'est pas nommé. Je ne sais pas si c'est une
nécessité. Pour ma part, il porte un nom :
props["name"] = "monChannel";

Le reste est relativement comparable à ce que je fais.

Jean
Avatar
Frédéric Caplet
ftrl a écrit :
Frédéric Caplet a écrit :

J'ai eu bon espoir puisque je n'avais pas cherché de ce coté.
Malheureusement, même ensureSecurity à false en tant que paramètre
pour RegisterChannel produit toujours l'exception...



J'ai vu que le channel n'est pas nommé. Je ne sais pas si c'est une
nécessité. Pour ma part, il porte un nom :
props["name"] = "monChannel";

Le reste est relativement comparable à ce que je fais.

Jean



Je crois savoir qu'il est possible de créer des channels anonymes, mais
dans le doute j'ai attribué nomr au channel, sans succès...

Merci du temps que tu m'as consacré, je commence vraiment à me demander
si le probleme ne peut pas venir d'ailleurs...

J'ai posté mon probleme dans le newsgroup US. La communauté étant un
peut plus developpés (du moin sur le theme du .Net Remoting) Quelqu'un
aura peut etre une solution.

Merci encore ;)

Frédéric
Avatar
Frédéric Caplet
ftrl a écrit :
Frédéric Caplet a écrit :

J'ai eu bon espoir puisque je n'avais pas cherché de ce coté.
Malheureusement, même ensureSecurity à false en tant que paramètre
pour RegisterChannel produit toujours l'exception...



J'ai vu que le channel n'est pas nommé. Je ne sais pas si c'est une
nécessité. Pour ma part, il porte un nom :
props["name"] = "monChannel";

Le reste est relativement comparable à ce que je fais.

Jean



Bon j'ai quelque peut avancé.
Le problème n'est pas lié aux cannaux ou a l'enregistrement des canaux
ou de l'objet distant, mais au parametre MBR transmis par la fonction.
Je vais donc chercher de ce coté...