Correlazione di query del messaggio LINQ

Nell’esempio LinqMessageQueryCorrelation, viene illustrato come eseguire una correlazione basata sul contenuto usando un'implementazione MessageQuery personalizzata anziché l'oggetto XPathMessageQuery fornito dal sistema.

Dimostra

Oggetto MessageQuery personalizzato, correlazione basata sul contenuto.

Discussione

In questo esempio viene illustrato come estendersi dalla classe base MessageQuery per scopi di correlazione. L'implementazione personalizzata, LinqMessageQuery, consente agli utenti di fornire un XName da trovare all'interno del messaggio tramite XLinq. I dati recuperati dalla query vengono usati per formare la chiave di correlazione per l'invio di messaggi all'istanza del flusso di lavoro appropriata.

Per impostare, compilare ed eseguire l'esempio

  1. In questo esempio viene esposto un servizio flusso di lavoro tramite endpoint HTTP. Per eseguire questo esempio, è necessario aggiungere (per informazioni dettagliate, vedere Configurazione di HTTP e HTTPS) elenchi ACL URL appropriati eseguendo Visual Studio come amministratore oppure eseguendo il comando seguente a un prompt con privilegi elevati per aggiungere gli ACL appropriati. Assicurarsi che vengono sostituiti il dominio e il nome utente.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Una volta aggiunti gli elenchi ACL URL, usare i passaggi seguenti.

    1. Compilare la soluzione.

    2. Impostare più progetti di avvio facendo clic con il pulsante destro del mouse sulla soluzione e selezionando Imposta progetti di avvio. Aggiungere Servizio e Client (in tale ordine) come più progetti di avvio.

    3. Eseguire l'applicazione. Nella console client viene illustrato un flusso di lavoro che invia un ordine, riceve l'ID dell'ordine di acquisto e conferma quindi successivamente l'ordine. Nella finestra Servizio verranno visualizzate le richieste elaborate.