LifetimeServices-Klasse

Steuert die .NET-Remoting-Lebensdauerdienste.

Namespace: System.Runtime.Remoting.Lifetime
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
Public NotInheritable Class LifetimeServices
'Usage
Dim instance As LifetimeServices
[ComVisibleAttribute(true)] 
public sealed class LifetimeServices
[ComVisibleAttribute(true)] 
public ref class LifetimeServices sealed
/** @attribute ComVisibleAttribute(true) */ 
public final class LifetimeServices
ComVisibleAttribute(true) 
public final class LifetimeServices

Hinweise

Die verteilte Garbage Collection ist für die Steuerung der Lebensdauer von Serveranwendungen zuständig und löscht sie nach Ablauf ihrer Lebensdauer. Üblicherweise verwendet die verteilte Garbage Collection Verweiszähler und Ping-Signale zur Steuerung. Dies funktioniert gut, wenn nur wenige Clients pro Objekt vorhanden sind. Bei Tausenden von Clients pro Objekt reicht dies jedoch nicht aus. Der Lebensdauerdienst kann die Funktion eines herkömmlichen verteilten Garbage Collectors übernehmen, und er passt sich auch bei einer steigenden Anzahl von Clients den Leistungsanforderungen gut an.

Der Lebensdauerdienst ordnet jedem remote aktivierten Objekt einen Lease zu. Das Objekt wird gelöscht, wenn der Lease abgelaufen ist.

Hinweis

Diese Klasse führt einen Verknüpfungsaufruf aus. Eine SecurityException wird ausgelöst, wenn der direkte Aufrufer nicht über die Berechtigung für die Infrastruktur verfügt. Weitere Informationen finden Sie unter Verknüpfungsaufrufe.

Beispiel

Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Lifetime


Public Class Server
   
   Public Shared Sub Main()
      LifetimeServices.LeaseTime = TimeSpan.FromSeconds(5)
      LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(3)
      LifetimeServices.RenewOnCallTime = TimeSpan.FromSeconds(2)
      LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(1)
      
      
      ChannelServices.RegisterChannel(New HttpChannel(8080))
      RemotingConfiguration.RegisterActivatedServiceType(GetType(ClientActivatedType))
      
      Console.WriteLine("The server is listening. Press Enter to exit....")
      Console.ReadLine()
      
      Console.WriteLine("GC'ing.")
      GC.Collect()
      GC.WaitForPendingFinalizers()
   End Sub 'Main
   
End Class 'Server
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Lifetime;

public class Server {

   public static void Main() {

      LifetimeServices.LeaseTime = TimeSpan.FromSeconds(5);
      LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(3);
      LifetimeServices.RenewOnCallTime = TimeSpan.FromSeconds(2);
      LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(1);

   
      ChannelServices.RegisterChannel(new HttpChannel(8080));
      RemotingConfiguration.RegisterActivatedServiceType(typeof(ClientActivatedType));
      
      Console.WriteLine("The server is listening. Press Enter to exit....");
      Console.ReadLine();  

      Console.WriteLine("GC'ing.");
      GC.Collect();
      GC.WaitForPendingFinalizers();
   }
}
#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;
}

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
  System.Runtime.Remoting.Lifetime.LifetimeServices

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

LifetimeServices-Member
System.Runtime.Remoting.Lifetime-Namespace