Exportieren (0) Drucken
Alle erweitern

LifetimeServices-Klasse

Aktualisiert: November 2007

Steuert die .NET-Remoting-Lebensdauerdienste.

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

[ComVisibleAttribute(true)]
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)]
public sealed class LifetimeServices
/** @attribute ComVisibleAttribute(true) */
/** @attribute SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure) */
public final class LifetimeServices
public final class LifetimeServices

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.

fb919969.alert_note(de-de,VS.90).gifHinweis:

Diese Klasse führt einen Linkaufruf 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.

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


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

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

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

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft