Tengo la necesidad de informar en tiempo real sobre la funcionalidad de un servicio WCF. El servicio se aloja automáticamente en una aplicación de Windows y mi requisito es informar "en vivo" a la aplicación de host cuando el cliente llama a ciertos métodos.Suscribirse a eventos dentro de un servicio WCF
Mi primer pensamiento en la tarea fue publicar un evento "NotifyNow" en el código de servicio, y suscribirme al evento en mi aplicación de llamada, pero esto no parece posible. Dentro de mi código de servicio (aplicación, la interfaz no) He intentado agregar el siguiente
public delegate void MessageEventHandler(string message);
public event MessageEventHandler outputMessage;
void SendMessage(string message)
{
if (null != outputMessage)
{
outputMessage(message);
}
}
y llame al método SendMessage cada vez que necesito para notificar a la aplicación de host de alguna acción. (Esto se basa en lo que recuerdo de este tipo de comunicación entre formas en una aplicación de winforms, y mi memoria puede haberme decepcionado ...)
Cuando intento conectar el controlador de eventos en mi host sin embargo, me parece que no puede encontrar la manera de unir a los eventos ... Mi código de alojamiento es (en pocas palabras)
service = new ServiceHost(typeof(MyService));
service.outputMessage += new MyService.MessageEventHandler(frm2_outputMessage);
// the above line does not work!
service.Open();
(envuelto en un try/catch).
¿Alguien puede ayudarme, ya sea diciéndome cómo hacer que este enfoque funcione o señalando de una mejor manera?
TIA
CustomEvent no aparece en Service1 para mí. ¿Funciona esto con WCF 4.5? –