Freigeben über


LifetimeServices Klasse

Definition

Steuert die .NET-Remoting-Lebensdauerdienste.

public ref class LifetimeServices sealed
public sealed class LifetimeServices
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class LifetimeServices
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public sealed class LifetimeServices
type LifetimeServices = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type LifetimeServices = class
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type LifetimeServices = class
Public NotInheritable Class LifetimeServices
Vererbung
LifetimeServices
Attribute

Beispiele

#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;
}
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() {

      Server myServer = new Server();
      myServer.Run();
   }

   public void Run()
   {
      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), true);
      RemotingConfiguration.RegisterActivatedServiceType(typeof(ClientActivatedType));

      Console.WriteLine("The server is listening. Press Enter to exit....");
      Console.ReadLine();

      Console.WriteLine("GC'ing.");
      GC.Collect();
      GC.WaitForPendingFinalizers();
   }
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Lifetime
Imports System.Security.Permissions


Public Class Server
   
   Public Shared Sub Main()
      Dim myServer As New Server()
      myServer.Run()
   End Sub

<SecurityPermission(SecurityAction.Demand, Flags:=SecurityPermissionFlag.Infrastructure)> _ 
   Public Sub Run()
      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), True)
      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
   
End Class

Hinweise

Verteilte Garbage Collection ist für die Steuerung der Lebensdauer von Serveranwendungen und für deren Löschung verantwortlich, wenn ihre Lebensdauer abgelaufen ist. In der Regel verwendet die verteilte Garbage Collection Die Verweisanzahl und das Pingen für die Steuerung. Dies funktioniert gut, wenn ein paar Clients pro Objekt vorhanden sind, funktioniert aber nicht gut, wenn pro Objekt Tausende von Clients vorhanden sind. Der Lebensdauerdienst kann die Funktion eines herkömmlichen verteilten Garbage Collector übernehmen und gut skaliert werden, wenn die Anzahl der Clients zunimmt.

Der Lebensdauerdienst ordnet jedem remote aktivierten Objekt eine Lease zu. Wenn die Lease abläuft, wird das Objekt entfernt.

Hinweis

Diese Klasse stellt eine Linkanforderung. Eine SecurityException wird ausgelöst, wenn der unmittelbare Aufrufer nicht über die Infrastrukturberechtigung verfügt. Weitere Informationen finden Sie unter Linkanforderungen .

Konstruktoren

LifetimeServices()
Veraltet.

Erstellt eine Instanz von LifetimeServices.

Eigenschaften

LeaseManagerPollTime

Ruft das Zeitintervall zwischen den einzelnen Aktivierungen des Lease-Managers ab, mit denen abgelaufene Leases bereinigt werden, oder legt dieses fest.

LeaseTime

Ruft die Anfangsleasedauer für eine AppDomain ab oder legt diese fest.

RenewOnCallTime

Ruft die Zeitspanne ab, um die der Lease bei jedem für das Serverobjekt eingehenden Aufruf verlängert wird, oder legt diese fest.

SponsorshipTimeout

Ruft die Zeitspanne ab, die der Lease-Manager wartet, bis der Sponsor die Erneuerungszeit für den Lease zurückgibt, oder legt diese fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: