LifetimeServices Klasse

Definition

Steuert die .NET-Remoting-Lebensdauerdienste.Controls the.NET remoting lifetime services.

public ref class LifetimeServices sealed
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public sealed class LifetimeServices
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;
using System.Security.Permissions;

public class Server {

   public static void Main() {

      Server myServer = new Server();
      myServer.Run();
   }
 
[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)]
   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

Verteiltes Garbage Collection ist für die Steuerung der Lebensdauer von Server Anwendungen und für das Löschen der Lebensdauer von Server Anwendungen verantwortlich.Distributed garbage collection is responsible for controlling the lifetimes of server applications, and for deleting them when their lifetimes have expired. In der Regel verwendet verteilte Garbage Collection Verweis Zählungen und Pings für das Steuerelement.Traditionally, distributed garbage collection uses reference counts and pinging for control. Dies funktioniert gut, wenn mehrere Clients pro Objekt vorhanden sind, aber nicht gut funktioniert, wenn Tausende von Clients pro Objekt vorhanden sind.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. Der Lebensdauer Dienst kann die Funktion eines herkömmlichen verteilten Garbage Collector annehmen und gut skaliert werden, wenn sich die Anzahl der Clients erhöht.The lifetime service can assume the function of a traditional distributed garbage collector, and scales well when the number of clients increases.

Der Lebensdauer Dienst ordnet jedem Remote aktivierten Objekt eine Lease zu.The lifetime service associates a lease with each remotely activated object. Wenn die Lease abläuft, wird das-Objekt entfernt.When the lease expires, the object is removed.

Hinweis

Diese Klasse stellt einen Link Bedarf dar.This class makes a link demand. Eine SecurityException wird ausgelöst, wenn der unmittelbare Aufrufer nicht über die Infrastruktur Berechtigung verfügt.A SecurityException is thrown if the immediate caller does not have infrastructure permission. Weitere Informationen finden Sie unter Link Anforderungen .See Link Demands for more information.

Konstruktoren

LifetimeServices()

Erstellt eine Instanz von LifetimeServices.Creates an instance of LifetimeServices.

Eigenschaften

LeaseManagerPollTime

Ruft das Zeitintervall zwischen den einzelnen Aktivierungen des Lease-Managers ab, mit denen abgelaufene Leases bereinigt werden, oder legt dieses fest.Gets or sets the time interval between each activation of the lease manager to clean up expired leases.

LeaseTime

Ruft die Anfangsleasedauer für eine AppDomain ab oder legt diese fest.Gets or sets the initial lease time span for an AppDomain.

RenewOnCallTime

Ruft die Zeitspanne ab, um die der Lease bei jedem für das Serverobjekt eingehenden Aufruf verlängert wird, oder legt diese fest.Gets or sets the amount of time by which the lease is extended every time a call comes in on the server object.

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.Gets or sets the amount of time the lease manager waits for a sponsor to return with a lease renewal time.

Methoden

Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Sicherheit

SecurityPermission
für den Betrieb mit Infrastruktur Code.for operating with infrastructure code. Anforderungs Wert: LinkDemand; Berechtigungs Wert:InfrastructureDemand value: LinkDemand; Permission Value: Infrastructure

Gilt für: