LifetimeServices LifetimeServices LifetimeServices LifetimeServices Class

Definizione

Controlla i servizi remoti di durata .NET.Controls the.NET remoting lifetime services.

public ref class LifetimeServices sealed
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public sealed class LifetimeServices
type LifetimeServices = class
Public NotInheritable Class LifetimeServices
Ereditarietà
LifetimeServicesLifetimeServicesLifetimeServicesLifetimeServices
Attributi

Esempi

#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
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 'Main

<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 'Run
   
End Class 'Server

Commenti

Garbage collection distribuito è responsabile del controllo della durata delle applicazioni server e per eliminarli dopo che le loro durate sono scaduti.Distributed garbage collection is responsible for controlling the lifetimes of server applications, and for deleting them when their lifetimes have expired. In genere la garbage collection distribuito utilizza i conteggi dei riferimenti ed effettuare il ping per il controllo.Traditionally, distributed garbage collection uses reference counts and pinging for control. Questo procedimento funziona bene quando sono presenti alcuni client per ogni oggetto, ma non funziona bene quando sono presenti migliaia di client per ogni oggetto.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. Il servizio di durata può assumere la funzione di un tradizionale garbage collector distribuito e si adatta bene quando si aumenta il numero di client.The lifetime service can assume the function of a traditional distributed garbage collector, and scales well when the number of clients increases.

Il servizio di durata associa un lease con ogni oggetto attivazione remota dal.The lifetime service associates a lease with each remotely activated object. Quando il lease scade, l'oggetto viene rimosso.When the lease expires, the object is removed.

Nota

Questa classe esegue una richiesta di collegamento.This class makes a link demand. SecurityException viene generata se il chiamante immediato non dispone dell'autorizzazione di infrastruttura.A SecurityException is thrown if the immediate caller does not have infrastructure permission. Visualizzare linking per altre informazioni.See Link Demands for more information.

Costruttori

LifetimeServices() LifetimeServices() LifetimeServices() LifetimeServices()

Crea un'istanza di LifetimeServices.Creates an instance of LifetimeServices.

Proprietà

LeaseManagerPollTime LeaseManagerPollTime LeaseManagerPollTime LeaseManagerPollTime

Ottiene o imposta l'intervallo di tempo previsto tra le attivazioni del gestore di lease per l'eliminazione dei lease scaduti.Gets or sets the time interval between each activation of the lease manager to clean up expired leases.

LeaseTime LeaseTime LeaseTime LeaseTime

Ottiene o imposta l'intervallo iniziale del lease per un AppDomain.Gets or sets the initial lease time span for an AppDomain.

RenewOnCallTime RenewOnCallTime RenewOnCallTime RenewOnCallTime

Ottiene o imposta il periodo per il quale il lease viene esteso ogni volta che giunge una chiamata sull'oggetto server.Gets or sets the amount of time by which the lease is extended every time a call comes in on the server object.

SponsorshipTimeout SponsorshipTimeout SponsorshipTimeout SponsorshipTimeout

Ottiene o imposta il periodo di attesa del gestore di lease per la restituzione del tempo di rinnovo di un lease da parte di uno sponsor.Gets or sets the amount of time the lease manager waits for a sponsor to return with a lease renewal time.

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Sicurezza

SecurityPermission
per operare con il codice dell'infrastruttura.for operating with infrastructure code. Valore richiesta: LinkDemand; Valore dell'autorizzazione: InfrastructureDemand value: LinkDemand; Permission Value: Infrastructure

Si applica a