LifetimeServices Class
Controls the.NET remoting lifetime services.
Assembly: mscorlib (in mscorlib.dll)
The LifetimeServices type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() | LeaseManagerPollTime | Gets or sets the time interval between each activation of the lease manager to clean up expired leases. |
![]() ![]() | LeaseTime | Gets or sets the initial lease time span for an AppDomain. |
![]() ![]() | RenewOnCallTime | Gets or sets the amount of time by which the lease is extended every time a call comes in on the server object. |
![]() ![]() | SponsorshipTimeout | Gets or sets the amount of time the lease manager waits for a sponsor to return with a lease renewal time. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
Distributed garbage collection is responsible for controlling the lifetimes of server applications, and for deleting them when their lifetimes have expired. Traditionally, distributed garbage collection uses reference counts and pinging for control. This works well when there are a few clients per object, but does not work well when there are thousands of clients per each object. The lifetime service can assume the function of a traditional distributed garbage collector, and scales well when the number of clients increases.
The lifetime service associates a lease with each remotely activated object. When the lease expires, the object is removed.
Note |
|---|
This class makes a link demand. A SecurityException is thrown if the immediate caller does not have infrastructure permission. See Link Demands for more information. |
#using <system.dll> #using <system.runtime.remoting.dll> #using "service.dll" using namespace System; using namespace System::Runtime::Remoting; using namespace System::Runtime::Remoting::Channels; using namespace System::Runtime::Remoting::Channels::Http; using namespace System::Runtime::Remoting::Lifetime; int main() { LifetimeServices::LeaseTime = TimeSpan::FromSeconds( 5 ); LifetimeServices::LeaseManagerPollTime = TimeSpan::FromSeconds( 3 ); LifetimeServices::RenewOnCallTime = TimeSpan::FromSeconds( 2 ); LifetimeServices::SponsorshipTimeout = TimeSpan::FromSeconds( 1 ); ChannelServices::RegisterChannel( gcnew HttpChannel( 8080 ) ); RemotingConfiguration::RegisterActivatedServiceType( ClientActivatedType::typeid ); Console::WriteLine( "The server is listening. Press Enter to exit...." ); Console::ReadLine(); Console::WriteLine( "GC'ing." ); GC::Collect(); GC::WaitForPendingFinalizers(); return 0; }
- SecurityPermission
for operating with infrastructure code. Demand value: SecurityAction::LinkDemand; Permission Value: SecurityPermissionFlag::Infrastructure
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
