Compartir a través de


Uso de filtros para registro de mensajes

Este ejemplo muestra cómo crear filtros para el registro de mensajes. Sólo se registran los mensajes que se ajustan a los criterios de filtro, reduciendo así la salida de registro innecesaria y facilitando la depuración. En concreto, este ejemplo muestra cómo filtrar dependiendo del elemento Action de SOAP.

Nota

Este ejemplo no incluye código. Puede agregar la configuración proporcionada en este ejemplo al archivo de configuración de su aplicación y observar los cambios en el registro de mensajes en el contexto de su escenario.

Filtrar en el registro de mensajes

El registro de mensajes de Windows Communication Foundation (WCF) se puede personalizar utilizando un filtro de XPath. Sólo se registran los mensajes que atraviesan el filtro. El filtro se define utilizando el lenguaje de XPath y se puede agregar al elemento <messageLogging> del archivo de configuración.

El filtro enumera las condiciones que un mensaje tiene que cumplir para que se registre. Este ejemplo muestra cómo registrar los mensajes con un elemento Action de SOAP concreto.

Filtrar basado en la acción

Los mensajes no pueden contener necesariamente las referencias del extremo o contrato, a menos que el servicio no configure la acción personalizada para las operaciones.

Si no se utilizan las acciones personalizadas, la acción incluida en cada mensaje adquiere el formato siguiente.

ContractNamespace/ContractName/OperationName

ContractNamespace incluye http://.

Si utiliza una envoltura de SOAP 1.2 para el mensaje, los mensajes destinados al MyContractName del contrato con MyContractNamespace de espacio de nombres se pueden filtrar para su registro, tal y como se muestra en la configuración siguiente.

<messageLogging logMessagesAtTransportLevel="true" logMessagesAtServiceLevel="true" >
   <filters>
      <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">/soap:Envelope/soap:Header/a:Action[starts-with(text(),'MyContractNamespace/MyContractName')]</add>
   </filters>
</messageLogging>

A continuación, se muestra un ejemplo para agregar un filtro que especifica el espacio de nombres y nombre del contrato para la solicitud Add del ejemplo Seguimiento y registro de mensajes.

<filters>
   <add xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">/soap:Envelope/soap:Header/a:Action[starts-with(text(),'http://Microsoft.ServiceModel.Samples/ICalculator/Add')]</add>
</filters>

Si se utilizan acciones personalizadas, el registro de mensajes se puede utilizar para filtrar mensajes mediante la acción siguiente.

<add xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">/soap:Envelope/soap:Header/a:Action/text()="MyAction"</add>

Para las envolturas de SOAP 1.1, el espacio de nombres de SOAP debería reemplazarse con https://schemas.xmlsoap.org/soap/envelope/. Debería realizar cambios similares para las versiones diferentes de direccionamiento.

Para el perfil básico HTTP, los encabezados no forman parte de la envoltura y se envían como encabezados HTTP. Debería modificar la técnica de filtrado según corresponda.

Para obtener más información sobre el registro de mensajes, consulte el tema Configuring Message Logging.

Para configurar, generar y ejecutar el ejemplo

  1. Para ejecutar este ejemplo, añada una de las secciones de configuración que se muestran previamente al archivo de configuración de la aplicación. Dado que la configuración para el registro de mensajes es válida en todo el dominio de la aplicación, el filtro del registro afecta a todos los mensajes registrados en el dominio de la aplicación.

  2. Ejecute la aplicación. Tenga en cuenta que sólo los mensajes que satisfacen la condición de filtro se registran en el disco.

Consulte también

Otros recursos

Configuring Message Logging

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.