Correlazione di query del messaggio LINQLINQ Message Query Correlation

In questo esempio viene illustrato come eseguire una correlazione basata sul contenuto usando un'implementazione MessageQuery personalizzata anziché l'oggetto XPathMessageQuery fornito dal sistema.This sample demonstrates how to do content-based correlation using a custom MessageQuery implementation as opposed to the system-provided XPathMessageQuery.

DimostrazioneDemonstrates

Oggetto MessageQuery personalizzato, correlazione basata sul contenuto.Custom MessageQuery, Content-Based Correlation.

DiscussioneDiscussion

In questo esempio viene illustrato come estendersi dalla classe base MessageQuery per scopi di correlazione.This sample shows how to extend from the MessageQuery base class for the purposes of correlation. L'implementazione personalizzata, LinqMessageQuery, consente agli utenti di fornire un XName da trovare all'interno del messaggio tramite XLinq.The custom implementation, LinqMessageQuery, allows users to provide an XName to find within the message using 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.The data retrieved by the query is used to form the correlation key to dispatch messages to the appropriate workflow instance.

Per impostare, compilare ed eseguire l'esempioTo set up, build, and run the sample

  1. In questo esempio viene esposto un servizio flusso di lavoro tramite endpoint HTTP.This sample exposes a workflow service using HTTP endpoints. Eseguire questa procedura elenchi ACL di URL di esempio, appropriata deve essere aggiunto (vedere Configuring HTTP and HTTPS per informazioni dettagliate), eseguendo Visual Studio come amministratore o eseguendo il comando seguente in un prompt dei comandi con privilegi elevati per aggiungere gli ACL appropriati.To run this sample, proper URL ACLs must be added (see Configuring HTTP and HTTPS for details), either by running Visual Studio as Administrator or by executing the following command at an elevated prompt to add the appropriate ACLs. Assicurarsi che vengono sostituiti il dominio e il nome utente.Ensure that your Domain and Username are substituted.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%  
    
  2. Una volta aggiunti gli elenchi ACL URL, usare i passaggi seguenti.Once the URL ACLs are added, use the following steps.

    1. Compilare la soluzione.Build the solution.

    2. Impostare più progetti di avvio facendo clic sulla soluzione e selezionando Imposta progetti di avvio.Set multiple start-up projects by right-clicking the solution and selecting Set Startup Projects. Aggiungere servizio e Client (in tale ordine) come più progetti di avvio.Add Service and Client (in that order) as multiple start-up projects.

    3. Eseguire l'applicazione.Run the application. 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.The client console shows a workflow sending an order and receiving the purchase order id and then subsequently confirming the order. Nella finestra Servizio verranno visualizzate le richieste elaborate.The Service window will show the requests being processed.

Importante

È possibile che gli esempi siano già installati nel computer.The samples may already be installed on your machine. Verificare la directory seguente (impostazione predefinita) prima di continuare.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Se questa directory non esiste, andare al Windows Communication Foundation (WCF) e gli esempi di Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti i Windows Communication Foundation (WCF) e WFWF esempi.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Questo esempio si trova nella directory seguente.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\Services\LinqMessageQueryCorrelation