LifetimeServices Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) |