共用方式為


存取操作上下文

AccessingOperationContext 範例示範傳訊活動 (ReceiveSend) 如何與自定義範圍活動搭配使用,以存取Current和附加或擷取傳出或傳入訊息內的自定義訊息標頭。

演示

傳訊活動、 ISendMessageCallbackIReceiveMessageCallback

討論

此範例示範如何在傳訊活動中使用擴充點 (ISendMessageCallbackIReceiveMessageCallback來存取 Current。 回呼在工作流程執行階段內被註冊為IExecutionProperty的實作,並由傳訊活動在執行時選取。 與該 IExecutionProperty 實作相同範圍中的任何傳訊活動都會受到影響。 特別是,此範例會使用自定義範圍活動來強制執行回呼行為。 在用戶端工作流程中使用ISendMessageCallback,以將工作流程的Id用作傳出MessageHeader。 接著服務會使用 IReceiveMessageCallback 提取此標頭,並將標頭的值列印到主控台。

設定、建置和執行範例

  1. 此範例會使用 HTTP 端點公開工作流程服務。 若要執行此範例,必須新增適當的URL ACL(如需詳細資訊,請參閱 設定 HTTP 和 HTTPS ),方法是以系統管理員身分執行Visual Studio,或在提升許可權的提示下執行下列命令以新增適當的 ACL。 請確保您的網域和用戶名稱已經替換。

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. 新增 URL ACL 之後,請使用下列步驟。

    1. 建置解決方案。

    2. 以滑鼠右鍵按兩下方案並選取 [ 設定啟始專案],以設定多個啟動專案。

    3. 服務和用戶端新增為多個啟動專案。

    4. 執行應用程式。 用戶端主控台會顯示執行兩次的工作流程,而 [服務] 視窗會顯示這些工作流程的實例識別碼。