Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase LifetimeServices

 

Publicado: octubre de 2016

Controla los servicios de duración de.NET remoting.

Espacio de nombres:   System.Runtime.Remoting.Lifetime
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Runtime.Remoting.Lifetime.LifetimeServices

[SecurityCriticalAttribute]
[ComVisibleAttribute(true)]
public sealed class LifetimeServices

NombreDescripción
System_CAPS_pubmethodLifetimeServices()

Obsoleto. Crea una instancia de LifetimeServices.

NombreDescripción
System_CAPS_pubpropertySystem_CAPS_staticLeaseManagerPollTime

Obtiene o establece el intervalo de tiempo entre cada activación del Administrador de concesiones para limpiar las concesiones expiradas.

System_CAPS_pubpropertySystem_CAPS_staticLeaseTime

Obtiene o establece el intervalo de tiempo de concesión inicial de un AppDomain.

System_CAPS_pubpropertySystem_CAPS_staticRenewOnCallTime

Obtiene o establece la cantidad de tiempo en que se amplía la concesión cada vez que recibe una llamada en el objeto de servidor.

System_CAPS_pubpropertySystem_CAPS_staticSponsorshipTimeout

Obtiene o establece la cantidad de tiempo que el Administrador de concesiones espera para que un patrocinador devuelva el tiempo de renovación de concesión.

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

La recolección es responsable de controlar las duraciones de las aplicaciones de servidor y eliminarlos cuando haya expirado el período de duración. Tradicionalmente, la recolección distribuida utiliza recuentos de referencias y comandos ping para controlar. Esto funciona bien cuando hay pocos clientes por objeto, pero no funciona bien cuando hay miles de clientes por cada objeto. El servicio de duración puede asumir la función de un recolector distribuido de elementos no utilizados tradicional y se adapta bien cuando aumenta el número de clientes.

El servicio de duración asocia una concesión a cada objeto activado remotamente. Cuando la concesión expira, se quita el objeto.

System_CAPS_noteNota

Esta clase realiza una petición de vínculo. Se produce una SecurityException si el llamador inmediato no tiene permiso de infraestructura. Vea Link Demands para obtener más información.

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();
   }
}

SecurityPermission

for operating with infrastructure code. Demand value: F:System.Security.Permissions.SecurityAction.LinkDemand; Permission Value: F:System.Security.Permissions.SecurityPermissionFlag.Infrastructure

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: