Condividi tramite


Accesso a OperationContext

L'esempio AccessOperationContext illustra come usare le attività di messaggistica (Receive e Send) con un'attività di ambito personalizzata per accedere Current e allegare o recuperare un'intestazione di messaggio personalizzata all'interno di un messaggio in uscita o in arrivo.

Dimostra

Attività di messaggistica, ISendMessageCallback, IReceiveMessageCallback.

Discussione

Questo esempio illustra come usare i punti di estendibilità (ISendMessageCallbackIReceiveMessageCallback) nelle attività di messaggistica per accedere a Current. I callback vengono registrati all'interno del runtime del flusso di lavoro come un'implementazione di IExecutionProperty che viene utilizzata dalle attività di messaggistica durante l'esecuzione. Qualsiasi attività di messaggistica nello stesso ambito di tale IExecutionProperty implementazione è interessata. In particolare, questo esempio utilizza un'attività di ambito personalizzata per l'applicazione del comportamento di callback. ISendMessageCallback viene usato nel flusso di lavoro del client per includere Id del flusso di lavoro come un MessageHeader in uscita. Questa intestazione viene quindi ripresa dal servizio usando IReceiveMessageCallback e il valore dell'intestazione viene stampato nella console.

Configurare, compilare ed eseguire l'esempio

  1. Questo esempio espone un servizio flusso di lavoro usando endpoint HTTP. Per eseguire questo esempio, è necessario aggiungere gli ACL URL appropriati (vedere Configurazione di HTTP e HTTPS ) eseguendo Visual Studio come amministratore o eseguendo il comando seguente al prompt con privilegi elevati per aggiungere gli ACL appropriati. Assicurarsi che il dominio e il nome utente siano sostituiti.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. Dopo aver aggiunto gli ACL URL, seguire questa procedura.

    1. Costruire la soluzione.

    2. Impostare più progetti di avvio facendo clic con il pulsante destro del mouse sulla soluzione e scegliendo Imposta progetti di avvio.

    3. Aggiungere il servizio e il client (in tale ordine) come progetti di avvio multipli.

    4. Eseguire l'applicazione. La console client mostra un flusso di lavoro in esecuzione due volte e la finestra Servizio mostra l'ID istanza di tali flussi di lavoro.