Compartir a través de


Correlación de consultas de mensajes LINQ

En este ejemplo LinqMessageQueryCorrelation, se muestra cómo realizar una correlación basada en contenidos mediante una implementación personalizada de MessageQuery en contraposición a XPathMessageQuery proporcionado por el sistema.

Muestra

MessageQuery personalizado, correlación basada en contenidos.

Debate

En este ejemplo se muestra cómo realizar una ampliación a partir de la clase base MessageQuery para propósitos de correlación. La implementación personalizada, LinqMessageQuery, permite a los usuarios proporcionar un XName para encontrar dentro del mensaje utilizando XLinq. Los datos recuperados por la consulta se utilizan para formar la clave de correlación para enviar los mensajes a la instancia de flujo de trabajo adecuada.

Configurar, compilar y ejecutar el ejemplo

  1. En este ejemplo se expone un servicio del 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 que su dominio y su nombre de usuario se sustituyen.

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

    1. Compile la solución.

    2. Establezca varios proyectos de inicio. Para ello, haga clic con el botón derecho en la solución y seleccione Establecer proyectos de inicio. Agregue Servicio y Cliente (en ese orden) como varios proyectos de inicio.

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