Accesso a OperationContext

L'esempio AccessingOperationContext illustra come le attività di messaggistica (Receive e Send) possono essere usate con un'attività di ambiti personalizzata per accedere a Current e allegare o recuperare un'intestazione di messaggio personalizzata all'interno di un messaggio in uscita o in ingresso.

Dimostra

Attività di messaggistica, ISendMessageCallback, IReceiveMessageCallback.

Discussione

In questo esempio viene illustrato come usare punti di estensibilità (ISendMessageCallback) IReceiveMessageCallback) nelle attività di messaggistica per accedere a Current. I callback vengono registrati all'interno dell'esecuzione del flusso di lavoro come un'implementazione di IExecutionProperty raccolta dalle attività della messaggistica durante l'esecuzione. Qualsiasi attività di messaggistica nello stesso ambito di tale implementazione IExecutionProperty risulta interessata. In particolare, questo esempio usa un'attività di ambiti personalizzata per applicare il comportamento di callback. ISendMessageCallback viene usato nel flusso di lavoro client per includere l'oggetto Id del flusso di lavoro come MessageHeader in uscita. Questa intestazione viene quindi scelta nel servizio usando IReceiveMessageCallback e il valore dell'intestazione viene stampato nella console.

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 elenchi ACL URL appropriati (per informazioni dettagliate, vedere Configurazione di HTTP e HTTPS) 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 scegliendo Imposta progetti di avvio.

    3. Aggiungere Servizio e Client (in tale ordine) come più progetti di avvio.

    4. Eseguire l'applicazione. Nella console client viene visualizzato un flusso di lavoro che viene eseguito due volte e nella finestra Servizio è visualizzato l'ID istanza di tali flussi di lavoro.