Compartilhar via


Correlação de consulta de mensagem LINQ

O exemplo LinqMessageQueryCorrelation demonstra como fazer correlação baseada em conteúdo usando uma implementação personalizada MessageQuery em vez do sistema fornecido XPathMessageQuery.

Demonstra

Correlação personalizada MessageQuerybaseada em conteúdo.

Discussão

Este exemplo mostra como estender da MessageQuery classe base para fins de correlação. A implementação LinqMessageQuerypersonalizada permite que os usuários forneçam um XName para localizar dentro da mensagem usando XLinq. Os dados recuperados pela consulta são usados para formar a chave de correlação para enviar mensagens para a instância de fluxo de trabalho apropriada.

Para configurar, compilar e executar o exemplo

  1. Este exemplo expõe um serviço de gerenciamento de fluxo de trabalho usando pontos finais HTTP. Para executar este exemplo, as ACLs de URL apropriadas devem ser adicionadas (consulte Configurando HTTP e HTTPS para obter detalhes), executando o Visual Studio como Administrador ou executando o comando a seguir em um prompt com privilégios elevados para adicionar as ACLs apropriadas. Verifique se o domínio e o nome de usuário são substituídos.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Depois que as ACLs de URL forem adicionadas, use as etapas a seguir.

    1. Crie a solução.

    2. Defina vários projetos de inicialização clicando com o botão direito do mouse na solução e selecionando Definir Projetos de Inicialização. Adicione Serviço e Cliente (nessa ordem) como vários projetos de inicialização.

    3. Execute o aplicativo. O console do cliente mostra um fluxo de trabalho enviando um pedido e recebendo a ID do pedido de compra e, em seguida, confirmando o pedido. A janela Serviço mostrará as solicitações que estão sendo processadas.