Remoting et Exception

Résolu
cs_elisbeth Messages postés 3 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 20 juillet 2009 - 19 juil. 2009 à 23:00
cs_elisbeth Messages postés 3 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 20 juillet 2009 - 20 juil. 2009 à 18:20
Bonjour,

Je ne comprends pas pourquoi je n'arrive pas à propager les exceptions sur le client dans un contexte .Net Remoting.

J'ai suivi MSDN
http://msdn.microsoft.com/fr-fr/library/s9fyb186(VS.80).aspx
pour l'implémentation de la classe d'exception ;

j'ai positionné <customErrors mode="Off"/> ;

Je leve l'exception par
throw new CustomRemotableException("message erreur");

Je catche (Exception ex) sur mon client , et j'obtiens inlassablement le message d'erreur

l'exception CustomRemotableException n'a pas été gérée par le code utilisateur ...

Que n'ai-je pas fait ?

Merci pour votre aide ...

4 réponses

cs_elisbeth Messages postés 3 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 20 juillet 2009
20 juil. 2009 à 18:20
Si, si ... j'avais catché , mais sur le client ....


Et ça y est, ça marche !!!!

Je me suis, je pense emmeler les pieds, lorsque j'ai testé sur la même machine : sur le serveur, il m'a demandé de rectifier customErrors.

J'avais aussi fait une boulette dans le code de la classe d'exception

Maintenant, tout va !!

Un gros merci pour tes réponses qui m'ont remotivée ....
3
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
20 juil. 2009 à 12:31
Ton exception doit :
Etre marquée avec l'attribut serializable
Avoir un constructeur de serialization (regarde le constructeur protected de Exception qui prend en paramètres SerializationInfo info, StreamingContext context).
Regarde l'inner exception de celle que tu catch coté client. elle ne doit pas correspondre a celle que tu lève, mais a une exception concernant l'echec de la serialisation de ton exception
0
cs_elisbeth Messages postés 3 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 20 juillet 2009
20 juil. 2009 à 15:08
Merci pour ta réponse ...

J'ai repointé ma classe Exception par rapport à MSDN : elle est bien Serializable, hérite de RemotingException et implémente ISerializable; mon constructeur de sérialisation est public, pas protected ...(???)

InnerException côté client est null...

Code côté serveur :
if (oArt == null) throw new ArticleException("Article inexistant");
else
{
Et il affiche l'assistant d'erreur exception "L'exception ArticleException n'a pas été géree par le code utilisateur" sur {

Si tu as une piste .... je prends encore !
Merci
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
20 juil. 2009 à 16:06
Ah d'accord. Euh donc tu n'as simplement pas catché l'exception j'imagine? Cet assistant te fait break sur Application.Run(MainForm); ?
0
Rejoignez-nous