Domanda

Ho creato un semplice server/client remoto C# con la visualizzazione della replica di un VB6 ActiveX EXE esistente.

Il client crea correttamente un oggetto singleton attivato dal server. L'oggetto è molto semplice con una proprietà: un conteggio. Ogni client che esegue crea l'oggetto e aumenta il suo conteggio.

Semplice: più client stanno lavorando con lo stesso oggetto Simpleton e la proprietà COUNT può essere incrementata da ciascuno.

Tuttavia ... se lascio un cliente aperto per un certo periodo di tempo - ad esempio, un paio di minuti - quando il client incrementa la proprietà del conteggio dell'oggetto, improvvisamente la proprietà del conteggio è stata inizializzata a zero - tra tutti i client. È come se l'oggetto remoto fosse stato distrutto e ricreato nonostante l'oggetto sia mai stato recuperato dal server una volta, quando il client si apre.

Qualsiasi pensiero apprezzato,

Grazie mm

È stato utile?

Soluzione

Credo che tu debba sovrascrivere la vita dell'oggetto remoto:

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

Mettilo nella tua classe che eredita MarshalByReFobject

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top