Frage

Ich habe einen einfachen C# Remoting -Server/Client erstellt, um einen vorhandenen VB6 ActiveX EXE zu replizieren.

Der Client erstellt einen server aktivierten Singleton -Objekt korrekt. Das Objekt ist nur sehr einfach mit einer Eigenschaft - eine Anzahl. Jeder Client, der ausgeführt wird, erstellt das Objekt und erhöht seine Anzahl.

Einfach - Mehrere Clients arbeiten jeweils mit demselben Simpleeton -Objekt und die Anzahl der Count -Eigenschaften kann jeweils erhöht werden.

Wenn ich jedoch einen Kunden längere Zeit offen lasse - beispielsweise ein paar Minuten -, wenn der Kunde die Zähleigenschaft des Objekts erhöht, wurde plötzlich die Eigenschaft der Zählung über alle Kunden auf Null initialisiert. Es ist, als wäre das Remote -Objekt zerstört und nachgebaut worden, obwohl das Objekt immer nur einmal vom Server abgerufen wurde - wenn der Client öffnet.

Alle Gedanken geschätzt,

Danke MM

War es hilfreich?

Lösung

Ich glaube, Sie müssen die Lebensdauer des Remote -Objekts außer Kraft setzen:

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

Platzieren Sie das in Ihre Klasse, die MarshalbyrefObject erbt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top