46 votes

Exception "L'objet a été déconnecté ou n'existe pas sur le serveur"

J'ai besoin d'utiliser des appels inter-domaines d'application dans mon application, et j'ai parfois cette RemotingException :

L'objet '/2fa53226_da41_42ba_b185_ec7d9c454712/ygiw+xfegmkhdinj7g2kpkhc_7.rem' a été déconnecté ou n'existe pas sur le serveur.

L'objet cible est toujours vivant, je l'ai vérifié.

UPD J'ai défini un point d'arrêt dans le finaliseur de l'objet cible, et il n'atteint jamais. Ainsi, cet objet est vivant et n'a pas été GC.

15voto

noah1989 Points 1893

En effet, la gestion de la durée de vie côté serveur déconnecte l'objet à l'expiration de son bail, pour permettre au GC de le récupérer. Si vous essayez de l'utiliser côté client, vous obtiendrez une exception, même si elle n'a pas encore été GC sur le serveur (par exemple parce qu'il y a encore une autre référence à elle) mais le bail a expiré. Ceci afin d'éviter les comportements imprévisibles. La réponse acceptée fournit une bonne référence sur la façon de gérer correctement la durée de vie des objets .NET distants.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X