Una de las ventajas en MSE es la centralización en la Visualización del trace de los mensajes. Para ciertos escenarios el mensaje no alcanza a llegar el servicio destino (No virtualizado). Cambiando la configuración en MSE podemos habilitar la traza al servicio y específicamente a los Mensajes.
Para realizar esta tarea necesitamos agregar en el archivo Microsoft.ManagedSolutions.Mse.Runtime.ServiceHost.exe.config las siguientes líneas:
<system.serviceModel> <diagnostics> <messageLogging maxMessagesToLog="100" logEntireMessage="true" logMessagesAtServiceLevel="true" logMalformedMessages="true" logMessagesAtTransportLevel="true"> </messageLogging> </diagnostics> </system.serviceModel>
En el grupo de sources en system.diagnostics se agrega el MessageLoging:
<listeners> <add name="xml" /> </listeners> </source>
Predeterminadamente MSE coloca los archivos de las trazas en esta ruta: c:\temp\logs\mse_runtime.svclog si queremos que se generen los archivos debemos tener estas carpetas creadas c:\temp\logs\
Para que se apliquen los cambios debemos salvar el archivo y reiniciar el servicio Mse Runtime Server
Ya podemos realizar el llamado a cualquier servicio, el MSE ahora no mostrara los datos del mensaje, para visualizarlos podemos abrir el archivo mse_runtime.svclog con la herramienta SvcTraceviewer
Puedes descargar SvcTraceViewer aquí
Ahora como podemos consultar?, sencillo podemos buscar los datos que estamos enviando al servicios, por ejemplo nuestro servicio le enviamos un parámetro llamado 127.0.0.1, buscamos en el traceviewer con los datos deben aparecer en Message Log Trace, debemos dar click al Trace.
Nos aparecerá la información si damos click a la pestaña XML, aquí un ejemplo de los datos.
No es recomendable en producción habilitar las trazas de este tipo de configuración ya que baja el performance del MSE. Quiero recordar que los cambios realizados se pueden hacer tanto en MSE como en cualquier servicio WCF.