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 oposição à fornecida XPathMessageQuerypelo sistema.

Demonstra

Correlação personalizada MessageQuery, baseada em conteúdo.

Discussão

Este exemplo mostra como estender a partir da classe base MessageQuery para fins de correlação. A implementação personalizada, LinqMessageQuery, permite que os usuários forneçam um XName para encontrar 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 fluxo de trabalho usando interfaces HTTP. Para executar este exemplo, ACLs de URL adequadas devem ser adicionadas (consulte Configurando HTTP e HTTPS para obter detalhes), executando o Visual Studio como Administrador ou executando o seguinte comando em um prompt elevado para adicionar as ACLs apropriadas. Certifique-se de que o seu Domínio e Nome de Utilizador estã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 o ID da ordem de compra e, em seguida, confirmando o pedido. A janela Serviço mostrará as solicitações que estão sendo processadas.