Wie kann ich client activated objects in .Net Remoting löschen?

Bjoern_adG

Grünschnabel
Hallo,

ich verwende client activated objects in .Net Remoting. Diese werden normalerweise aus dem Speicher entfernt, wenn die Lease ausgelaufen ist. I will sie aber explizit löschen konnen bzw. die Verbindung schließen.

Wichtig ist allerdings, dass das von der Seite des Clients geschehen soll. Die Objekte erben von MarshalByRefObejct. Aus diesem Grund habe ich versucht, sie mit RemotingServices.Disconnect(MarshalByRefObject) zu löschen. Da diese aber beim Client nur einen Proxy darstellen, wirft er eine Exception mit einer ählichen Fehlermeldung. Was ich machen kann, ist diese Methode auf der Seite des Servers aufzurufen.

public void CloseConnection()
{
RemotingServices.Disconnect(this);
}

Das erfordert aber jedesmal zusätzlichen Netzwerkverkehr wegem dem zusätzlichen Methodenaufruf.

UnregisterChannel(TcpClientChannel) funktioniert auch nicht, da ich damit nur verhindere, dass neue Verbindungen aufgebaut werden können, bereits existierende werden damit aber nicht geschlossen.

Hat jemand eine Idee?

Danke,Björn
 
Zurück