LifetimeServices Klasa

Definicja

Steruje the.NET usługami okresu istnienia komunikacji wielokrotnej.

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;

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

Uwagi

Rozproszone odzyskiwanie pamięci jest odpowiedzialne za kontrolowanie okresów istnienia aplikacji serwera i usuwanie ich, gdy ich okresy istnienia wygasły. Tradycyjnie rozproszone odzyskiwanie pamięci używa liczników odwołań i polecenia ping do kontroli. Działa to dobrze, gdy istnieje kilka klientów na obiekt, ale nie działa dobrze, gdy istnieje tysiące klientów na każdy obiekt. Usługa okresu istnienia może przyjąć funkcję tradycyjnego rozproszonego modułu odśmiecającego pamięci i skalować się dobrze, gdy liczba klientów wzrośnie.

Usługa okresu istnienia kojarzy dzierżawę z każdym zdalnie aktywowanym obiektem. Po wygaśnięciu dzierżawy obiekt zostanie usunięty.

Uwaga

Ta klasa sprawia, że zapotrzebowanie na łącza. Wyjątek SecurityException jest zgłaszany, jeśli bezpośredni obiekt wywołujący nie ma uprawnień infrastruktury. Aby uzyskać więcej informacji, zobacz Link Demands (Żądania linków ).

Konstruktory

LifetimeServices()
Nieaktualne.
Nieaktualne.

Tworzy wystąpienie klasy LifetimeServices.

Właściwości

LeaseManagerPollTime

Pobiera lub ustawia interwał czasu między każdą aktywacją menedżera dzierżawy w celu oczyszczenia wygasłych dzierżaw.

LeaseTime

Pobiera lub ustawia początkowy przedział czasu dzierżawy dla elementu AppDomain.

RenewOnCallTime

Pobiera lub ustawia czas, przez który dzierżawa jest rozszerzana za każdym razem, gdy wywołanie pojawia się w obiekcie serwera.

SponsorshipTimeout

Pobiera lub ustawia czas oczekiwania menedżera dzierżawy na powrót sponsora z czasem odnowienia dzierżawy.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy