Siguiendo con las instancias del servicio WCF

Como comenté anteriormente la propiedad InstanceContextMode determina el ciclo de vida de las instancias del servicio. Esta propiedad se establece de forma global una sola vez para toda la clase.


Pero ¿ qué pasa si queremos cambiar esto?¿ Podemos hacer que una determinada operación haga que el servicio se comporte de manera diferente? La respuesta es sí.


En el OperationBehavior del método podemos establecer la propiedad ReleaseInstanceMode, que viene a completar la funcionalidad ofrecida por InstanceContextMode.


[OperationBehavior ( ReleaseInstanceMode =  <valor> ) ]


public bool Operation()


{


Los valores que puede adoptar este atributo son:


ReleaseInstanceMode.AfterCall. Cuando finaliza la operación la instancia del servicio libera la instancia. Si el cliente invoca otra operación se creará otra instancia.


ReleaseInstanceMode.BeforeCall. Si existe ya una instancia cuando el cliente lo llama, éste se destruirá y se creará una nueva.


ReleaseInstanceMode.BeforeAndAfterCall. Como es de suponer es una combinación de las dos anteriores.


ReleaseInstanceMode.None. Es el valor por defecto. Se hace caso al valor de InstanceContextMode.


Conocer esta propiedad, las propiedades InstanceContextMode y Concurrency y los parámetros de Throtting es algo básico para poder diseñar tu servicio WCF.


 

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *