Udostępnij za pośrednictwem


LifetimeServices Klasa

Definicja

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

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 oraz usuwanie ich, gdy ich okresy istnienia wygasły. Tradycyjnie rozproszone odzyskiwanie pamięci używa 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 skaluje się dobrze, gdy liczba klientów wzrośnie.

Usługa okresu istnienia kojarzy dzierżawę z każdym obiektem aktywowanym zdalnie. 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ń do infrastruktury. Aby uzyskać więcej informacji, zobacz Link Demands (Żądania linków ).

Konstruktory

LifetimeServices()
Przestarzałe.

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 wyczyszczenia 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, przez jaki menedżer dzierżawy czeka na zwrot 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