AccessingOperationContext 範例示範傳訊活動 (Receive和Send) 如何與自定義範圍活動搭配使用,以存取Current和附加或擷取傳出或傳入訊息內的自定義訊息標頭。
演示
傳訊活動、 ISendMessageCallback、 IReceiveMessageCallback。
討論
此範例示範如何在傳訊活動中使用擴充點 (ISendMessageCallback) IReceiveMessageCallback來存取 Current。 回呼在工作流程執行階段內被註冊為IExecutionProperty的實作,並由傳訊活動在執行時選取。 與該 IExecutionProperty 實作相同範圍中的任何傳訊活動都會受到影響。 特別是,此範例會使用自定義範圍活動來強制執行回呼行為。 在用戶端工作流程中使用ISendMessageCallback,以將工作流程的Id用作傳出MessageHeader。 接著服務會使用 IReceiveMessageCallback 提取此標頭,並將標頭的值列印到主控台。
設定、建置和執行範例
此範例會使用 HTTP 端點公開工作流程服務。 若要執行此範例,必須新增適當的URL ACL(如需詳細資訊,請參閱 設定 HTTP 和 HTTPS ),方法是以系統管理員身分執行Visual Studio,或在提升許可權的提示下執行下列命令以新增適當的 ACL。 請確保您的網域和用戶名稱已經替換。
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%新增 URL ACL 之後,請使用下列步驟。
建置解決方案。
以滑鼠右鍵按兩下方案並選取 [ 設定啟始專案],以設定多個啟動專案。
將服務和用戶端新增為多個啟動專案。
執行應用程式。 用戶端主控台會顯示執行兩次的工作流程,而 [服務] 視窗會顯示這些工作流程的實例識別碼。