存取 OperationContext
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,請使用下列步驟。
建置方案。
以滑鼠右鍵按一下解決方案,並選取 [設定啟始專案],以設定多個啟始專案。
加入 Service 和 Client (依此順序) 做為多個啟始專案。
執行應用程式。 用戶端主控台會顯示執行兩次的工作流程,而 [服務] 視窗會顯示這些工作流程的執行個體識別碼。