Compartir a través de


Correlación de consultas de mensajes LINQ

En el ejemplo LinqMessageQueryCorrelation se muestra cómo realizar una correlación basada en contenido mediante una implementación personalizada MessageQuery en lugar de la proporcionada XPathMessageQuerypor el sistema.

Demostraciones

Correlación personalizada MessageQuerybasada en contenido.

Discusión

En este ejemplo se muestra cómo extender desde la MessageQuery clase base con fines de correlación. La implementación personalizada, LinqMessageQuery, permite a los usuarios proporcionar un XName para buscar dentro del mensaje mediante XLinq. Los datos recuperados por la consulta se usan para formar la clave de correlación para enviar mensajes a la instancia de flujo de trabajo adecuada.

Para configurar, compilar y ejecutar el ejemplo

  1. En este ejemplo se expone un servicio de flujo de trabajo mediante puntos de conexión HTTP. Para realizar este ejemplo, se deben agregar listas ACL de direcciones URL adecuadas (consulte Configuración de HTTP y HTTPS para obtener más información) ejecutando Visual Studio como administrador o el siguiente comando en una ventana de símbolo del sistema con privilegios elevados para agregar las listas ACL correspondientes. Asegúrese de reemplazar su dominio y nombre de usuario.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Una vez agregadas las ACL de dirección URL, siga estos pasos.

    1. Compile la solución.

    2. Para configurar varios proyectos de inicio, haga clic con el botón derecho en la solución y seleccione Establecer proyectos de inicio. Agregue Servicio y Cliente como varios proyectos de inicio simultáneo en ese orden.

    3. Ejecute la aplicación. La consola del cliente muestra un flujo de trabajo que envía un pedido y recibe el identificador del pedido de compra y, a continuación, confirma el pedido. La ventana Servicio mostrará las solicitudes que se están procesando.