Compartir a través de


Inicializar las concesiones

Cuando se crea una instancia de una clase derivada MarshalByRefObject, el marco de .NET Remoting llama al método del objeto InitializeLifetimeService. Este método devuelve un objeto de concesión que contiene los períodos de duración predeterminados para el objeto remoto. Puede modificar estos valores predeterminados especificando los valores alternativos en el archivo de configuración de la aplicación de servidor (utilizando el <lifetime> (Elemento)) o invalidando InitializeLifetimeService.

Si especifica los valores alternativos en un archivo de configuración, sea consciente de que esto cambia el período de duración predeterminado para todos los objetos que hospeda la aplicación del servidor. Invalidar InitializeLifetimeService le permite cambiar los valores del período de duración predeterminado para una clase concreta.

Invalidar InitializeLifetimeService

Al invalidar InitializeLifetimeService debe comprobar el valor de CurrentState. Solamente puede cambiar los valores de concesión cuando CurrentState iguala a Initial.

La única llamada que afecta al servicio de período de duración es la llamada a InitializeLifetimeService desde la infraestructura de .NET Remoting, que activa la concesión. Otro código puede llamar a InitializeLifetimeServicey crear una concesión, pero esa concesión se queda en su estado inicial hasta que se devuelva a la infraestructura de .NET Remoting.

Si InitializeLifetimeService se convierte en null, la duración del objeto es infinita y no se recopila en los elementos no utilizados hasta que se descargue el dominio de aplicación de hospedaje.

La implementación de InitializeLifetimeService llama normalmente al método correspondiente de la clase base para recuperar la concesión existente para el objeto remoto. Si nunca se ha calculado la referencia al objeto, la concesión devuelta está en su estado inicial y se pueden establecer las propiedades de concesión. Una vez calculadas las referencias al objeto, la concesión va desde el estado inicial al activo, se omite cualquier intento para inicializar las propiedades de concesión y se produce una excepción. Se llama a InitializeLifetimeService cuando se activa el objeto remoto. Se puede proporcionar una lista de patrocinadores para la concesión con la llamada de activación, y se pueden agregar patrocinadores adicionales en cualquier momento mientras la concesión está activa.

Para obtener información sobre cómo invalidar el método InitializeLifetimeService, vea Cómo: Invalidar la interfaz InitializeLifetimeService.

Consulte también

Tareas

Cómo: Invalidar la interfaz InitializeLifetimeService

Conceptos

Renovar las concesiones
Ejemplo de comunicación remota: duraciones
Concesiones de duración

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.