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

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. L'oggetto ISendMessageCallback viene usato nel flusso di lavoro client per includere il flusso di Id lavoro come in uscita MessageHeader. Questa intestazione viene quindi scelta nel servizio usando IReceiveMessageCallback e il valore dell'intestazione viene stampato nella console.

Configurare, 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 gli ACL URL appropriati (vedere Configurazione di HTTP e HTTPS per informazioni dettagliate), eseguendo Visual Studio come amministratore o eseguendo il comando seguente al 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 il servizio e il 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.