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
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
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