Question

J'ai créé un serveur / client éloigné C # simple avec la vue de la réplication d'un exe VB6 ActiveX existant.

Le client crée correctement un objet Singleton activé par serveur. L'objet n'est que très simple ayant une propriété - un décompte. Chaque client qui s'exécute crée l'objet et incréments son nombre.

Simple - plusieurs clients travaillent chacun avec le même objet Simpleton et la propriété Count peut être incrémentée de chacune.

Cependant ... si je laisse un client ouvert pendant une durée - disons, par exemple, quelques minutes - lorsqu'elle incrémente le client de la propriété de comptage de l'objet, la propriété de décompte a été initialisée à zéro - à tous les clients. C'est comme si l'objet distant avait été détruit et recréé malgré le fait que l'objet ne soit récupéré du serveur qu'une seule fois - lorsque le client s'ouvre.

Toutes les pensées appréciées,

Merci mm

Était-ce utile?

La solution

Je crois que vous devez remplacer la durée de vie de l'objet distant:

public override object InitializeLifetimeService()
    {
        return null; //remote object lease time forever
    }

Placez cela dans votre classe qui hérite de MarshalbyRefObject

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top