Me gustaría ser capaz de registrar la información de mensaje en una base de datos, y yo estoy tratando de decidir la mejor manera de hacer eso. ¿Es posible configurar los mecanismos de registro WCF para escribir en una base de datos en lugar de un archivo? Gracias.¿Cómo puedo habilitar el registro de WCF para que se escribe a una base de datos?
Respuesta
Es necesario tener dos cosas:
- una configuración adecuada para permitir el rastreo .NET
- una escucha de seguimiento para capturar los mensajes de seguimiento y almacenarlos en una base de datos
Para # 1:
Es necesario activar el seguimiento de WCF primera - que necesita una entrada en <system.serviceModel>
que habilita el rastreo:
<system.serviceModel>
<diagnostics>
<messageLogging
logEntireMessage="true"
logMalformedMessages="false"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="false"
maxMessagesToLog="300000"
maxSizeOfMessageToLog="200000"/>
</diagnostics>
</system.serviceModel>
A continuación, tendrá que configurar el seguimiento de .NET como tal:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml" type="WcfTrace.Trace.WebTraceListener,WcfTrace.Trace" />
</sharedListeners>
</system.diagnostics>
Aquí, en vez del WebTraceListener, u otros oyentes predefinidos, también puede conectar su propia base de datos de escucha de seguimiento orientado.
Para # 2:
Puede - por supuesto - escribir su propio SqlTraceListener
- o puede utilizar una de las muchas soluciones ya hechas por ahí, por ejemplo this one here (descargar el código de Codeplex).
Puede utilizar Log4Net
Si no necesita todo el mensaje SOAP, sugeriría usar log4net con la implementación personalizada IParameterInspector o IDispatchMessageInspector, porque en este caso puede escribir para registrar solo lo que necesita. De lo contrario, tome la solución de marc_s.
- 1. Base de datos de registro de errores: para muchas aplicaciones
- 2. Cómo puedo evitar que el tamaño de fuente UITextfield se reduzca a medida que escribe
- 3. ¿Cómo puedo habilitar el registro en cromo de Android?
- 4. ¿Cómo puedo evitar que se vuelva a escribir la base de datos cuando el navegador realiza una recarga/devolución?
- 5. Cómo habilitar el registro de Ehcache
- 6. Diseño de base de datos para registro de auditoría
- 7. ¿Cómo se escribe una traza de pila completa en el registro?
- 8. ¿Por qué se escribe el registro en una ubicación diferente a la esperada?
- 9. WCF ¿Cómo habilitar los metadatos?
- 10. ¿Cómo muevo el Registro de transacciones para una base de datos usando sqlcmd/línea de comando?
- 11. EntityManager no escribe en la base de datos
- 12. ¿Cómo puedo agregar una columna a una base de datos Postgresql que no permita valores nulos?
- 13. O escribe el primer registro o último registro de la lista, cualquier sugerencia para hacerlo bien
- 14. El archivo de registro para la base de datos está lleno
- 15. Habilitar el Servicio de datos WCF para aceptar/devolver JSON de forma predeterminada
- 16. ¿Cómo puedo obtener una referencia a una secuencia de salida que escribe en la ventana de "salida" de Visual Studio?
- 17. ¿Cómo puedo eliminar todas las sesiones que se conectan a mi base de datos Oracle?
- 18. Rieles: ¿cómo puedo hacer una solicitud que no llega a la base de datos?
- 19. ¿Cómo se encuentra la última vez que se accedió a una base de datos?
- 20. cómo habilitar el registro de nivel de paquete en log4j
- 21. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql
- 22. Cómo habilitar el registro de mensajes WCF desde el código en lugar del archivo de configuración de la aplicación
- 23. En WPF, ¿cómo se escribe una aplicación para pantallas múltiples?
- 24. wcf tratando de configurar el rastreo para depurar, no escribiendo en el archivo de registro
- 25. ¿Cambiar color de texto a medida que el usuario escribe?
- 26. ¿Cómo se escribe bonito?
- 27. El usuario no tiene permiso para acceder a una base de datos
- 28. Habilitar SSL para mi servicio WCF
- 29. ¿Cómo puedo habilitar el registro lento de consultas de MySQL sin reiniciar MySQL?
- 30. ¿Cómo puedo habilitar el registro del historial de tareas del servidor de Windows Server?
Blog [Configuración de servicio WCF para utilizar Enterprise Library: aplicación de registro para registrar datos a la base de datos] (http://weblogs.asp.net/sukumarraju/archive/2011/11/07/configuring-wcf-service-to- utilizar-empresa-biblioteca-registro de aplicación a-log-datos-a-database.aspx) tiene instrucciones paso a paso, cómo configurar 'oyente base de datos de seguimiento' –