LifetimeServices Klasa

Definicja

Kontroluje the.NET usługi czasu istnienia usług zdalnych.Controls the.NET remoting lifetime services.

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
Dziedziczenie
LifetimeServices
Atrybuty

Przykłady

#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

Uwagi

Rozproszone odzyskiwanie pamięci jest odpowiedzialne za kontrolowanie okresów istnienia aplikacji serwerowych oraz usuwanie ich po wygaśnięciu ich okresów istnienia.Distributed garbage collection is responsible for controlling the lifetimes of server applications, and for deleting them when their lifetimes have expired. Tradycyjna funkcja rozproszonego wyrzucania elementów bezużytecznych używa liczników odwołań i poleceń ping dla kontrolki.Traditionally, distributed garbage collection uses reference counts and pinging for control. Jest to dobre rozwiązanie w przypadku kilku klientów na obiekt, ale nie działa prawidłowo, gdy na każdym obiekcie są tysiące klientów.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. Usługa okres istnienia może przyjąć funkcję tradycyjnego rozproszonego modułu odzyskiwania pamięci i skalować ją w miarę wzrostu liczby klientów.The lifetime service can assume the function of a traditional distributed garbage collector, and scales well when the number of clients increases.

Usługa okres istnienia kojarzy dzierżawę z każdym zdalnym aktywowanym obiektem.The lifetime service associates a lease with each remotely activated object. Po wygaśnięciu dzierżawy obiekt zostanie usunięty.When the lease expires, the object is removed.

Uwaga

Ta klasa wykonuje żądanie linku.This class makes a link demand. Wystąpił wyjątek SecurityException, jeśli bezpośredni obiekt wywołujący nie ma uprawnienia do infrastruktury.A SecurityException is thrown if the immediate caller does not have infrastructure permission. Aby uzyskać więcej informacji, zobacz wymagania dotyczące linków .See Link Demands for more information.

Konstruktory

LifetimeServices()
Nieaktualne.
Nieaktualne.

Tworzy wystąpienie LifetimeServices .Creates an instance of LifetimeServices.

Właściwości

LeaseManagerPollTime

Pobiera lub ustawia przedział czasu między każdą aktywacją Menedżera dzierżawy w celu oczyszczenia wygasłych dzierżaw.Gets or sets the time interval between each activation of the lease manager to clean up expired leases.

LeaseTime

Pobiera lub ustawia przedział czasu początkowej dzierżawy dla AppDomain .Gets or sets the initial lease time span for an AppDomain.

RenewOnCallTime

Pobiera lub ustawia czas, przez jaki dzierżawa jest przedłużana za każdym razem, gdy w obiekcie serwera znajduje się wywołanie.Gets or sets the amount of time by which the lease is extended every time a call comes in on the server object.

SponsorshipTimeout

Pobiera lub ustawia czas oczekiwania Menedżera dzierżawy na pozyskanie sponsora przy użyciu czasu odnowienia dzierżawy.Gets or sets the amount of time the lease manager waits for a sponsor to return with a lease renewal time.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Dotyczy