Freigeben über


Initialisieren von Leases

Wenn eine von MarshalByRefObject-abgeleitete Klasse instanziiert wird, ruft das .NET-Remoting-Framework die InitializeLifetimeService-Methode des Objekts auf. Diese Methode gibt ein Leaseobjekt zurück, das die Standardlebensdauerwerte für das Remoteobjekt enthält. Diese Standardwerte können geändert werden, indem Alternativwerte in der Konfigurationsdatei für die Serveranwendung (im <lifetime>-Element) angegeben werden oder indem InitializeLifetimeService überschrieben wird.

Bei der Angabe von Alternativwerten in einer Konfigurationsdatei ist zu beachten, dass sich diese Änderungen auf die Standardwerte für die Lebensdauer aller Objekte auswirken, für die die Serveranwendung als Host fungiert. Beim Überschreiben von InitializeLifetimeService ist es möglich, nur für eine bestimmte Klasse die Standardwerte für die Lebensdauer zu ändern.

Überschreiben von InitializeLifetimeService

Wenn Sie InitializeLifetimeService überschreiben, müssen Sie den Wert von CurrentState überprüfen. Sie können die Leasewerte nur ändern, wenn CurrentState gleich Initial ist.

Nur der Aufruf von InitializeLifetimeService von der .NET-Remoting-Infrastruktur, der die Lease aktiviert, wirkt sich auf den Lebensdauerdienst aus. Anderer Code kann InitializeLifetimeServiceaufrufen und eine Lease erstellen, die dann jedoch solange ihren ursprünglichen Zustand beibehält, bis sie an die .NET-Remoting-Infrastruktur zurückgegeben wird.

Wenn InitializeLifetimeService den Wert null zurückgibt, hat das Objekt eine unendliche Lebensdauer und unterliegt erst dann der Garbage Collection, wenn die Hostanwendungsdomäne entladen wird.

Die Implementierung von InitializeLifetimeService ruft normalerweise die entsprechende Methode der Basisklasse auf, um die vorhandene Lease für das Remoteobjekt abzurufen. Wenn das Objekt nie gemarshallt wurde, wird die Lease in ihrem ursprünglichen Zustand zurückgegeben, und die Leaseeigenschaften können festgelegt werden. Sobald das Objekt nie gemarshallt wurde, wird die Lease von ihrem ursprünglichen in den aktiven Zustand versetzt, und jeder Versuch, die Leaseeigenschaften zu initialisieren, wird ignoriert, und es wird eine Ausnahme ausgelöst. InitializeLifetimeService wird aufgerufen, wenn das Remoteobjekt aktiviert wird. Im Aktivierungsaufruf kann eine Liste von Sponsoren für die Lease angegeben werden, und sobald die Lease aktiv ist, können jederzeit weitere Sponsoren hinzugefügt werden.

Informationen dazu, wie die InitializeLifetimeService-Methode überschrieben wird, finden Sie unter Gewusst wie: Überschreiben der InitializeLifetimeService-Schnittstelle.

Siehe auch

Aufgaben

Gewusst wie: Überschreiben der InitializeLifetimeService-Schnittstelle

Konzepte

Erneuern von Leases
Remotingbeispiel: Lebensdauer
Lebensdauerleases

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.