2012-03-19 8 views
8

Necesito ejecutar algunos métodos antes de la primera llamada de un servicio wcf, ¿dónde pongo esos métodos? ¿Dónde está el método de inicio de un Servicio WCF?¿Dónde está el método de inicio de un servicio WCF?

Obs1: mi servicio WCF se ejecutará en un IIS6. Obs2: estoy usando .net framework 4.0.

+2

El comportamiento predeterminado de un servicio WCF es ** por llamada **, p. cada solicitud obtiene su propia instancia de la clase de servicio y se ejecuta el método que invocó. Solo hay memoria en la memoria y, por lo tanto, no hay nada como "métodos de inicio" en un servicio WCF. Tiene su clase de servicio, todo lo que necesita hacer en el método de servicio –

Respuesta

4

Una forma de hacer esto es autohospedar sus servicios WCF (como no en IIS). De esa forma, puede ejecutar el código que desee antes de activar los servicios.

Otra forma es agregar una llamada al método estático en el constructor de cada implementación del comportamiento del servicio. Esa llamada al método estático verificará si la inicialización se realizó. Solo asegúrate de manejar la simultaneidad de subprocesos múltiples durante esta llamada.

3

Según la configuración de tiempo de vida de su servicio, WCF instanciará la clase de servicio en cada llamada (singlecall), para cada cliente (sesión) o solo una vez para cada llamada de cada cliente (singleton).

Puede implementar la interfaz IInstanceProvide r y tomar el control del proceso de creación de instancias. De esta manera, puede tener la oportunidad de llamar a los métodos de la clase antes de que se realice la llamada al wcf.

+0

+1 para IInstanceProvider - No lo hice saber sobre eso. – RQDQ

Cuestiones relacionadas