作法:使用傳訊活動建立工作流程服務

本主題描述如何使用訊息活動建立簡單的工作流程服務。 本主題的重點在於建立工作流程服務的機制,而該服務主要包含的便是訊息活動。 在真實世界的服務中,工作流程包含許多其他活動。 服務會實作一項稱為 Echo 的作業,該作業會使用字串並將字串傳回呼叫端。 本主題即為兩個主題的第一個。 下一個主題如何:從工作流程應用程式存取服務將討論如何建立工作流程應用程式,以便呼叫在本主題中建立的服務。

若要建立工作流程服務專案

  1. 啟動 Visual Studio 2012。

  2. 按一下 [檔案] 功能表,選取 [新增],然後按一下 [專案],顯示 [加入新的專案] 對話方塊。 從已安裝的範本清單中選取 [工作流程],然後從專案類型清單選取 [WCF 工作流程服務應用程式]。 將專案命名為 MyWFService,並且使用預設位置,如下圖所示。

    按一下 [確定] 按鈕以關閉 [加入新的專案] 對話方塊。

  3. 建立專案後,會在設計工具中開啟 Service1.xamlx 檔案,如下圖所示。

    Screenshot shows the open Service1.xamlx file in the designer.

    以滑鼠右鍵按一下標示為 [循序服務] 的活動,然後選取 [刪除]

若要實作工作流程服務

  1. 在畫面的左邊,選取 [工具箱] 索引標籤以顯示工具箱,然後按一下圖釘,將視窗保持在開啟狀態。 展開工具箱的 [傳訊] 區段,顯示訊息活動和訊息活動範本,如下圖所示。

    Screenshot that shows the toolbox with Messaging section expanded.

  2. 將 [ReceiveAndSendReply] 範本拖曳至工作流程設計工具。 這樣做會建立 Sequence 活動,含有跟隨著 SendReply 活動的 [接收] 活動,如下圖所示。

    Screenshot that shows the ReceiveAndSendReply template.

    注意,SendReply 活動的 Request 屬性會設為 Receive,也就是 Receive 活動所回覆之 SendReply 活動的名稱。

  3. Receive 活動中,在標籤名稱為 [OperationName] 的文字方塊中輸入 Echo。 這樣做會定義服務所實作之作業的名稱。

    Screenshot that shows where to specify the operation name.

  4. 選取 Receive 活動,按一下 [檢視] 功能表,然後選取 [屬性視窗],開啟屬性視窗 (如果未開啟)。 在 [屬性視窗] 中,向下捲動直到看見 CanCreateInstance,然後按一下核取方塊,如下圖所示。 這項設定可讓工作流程服務主機在接收訊息時建立新的服務執行個體 (如果需要的話)。

    Screenshot that shows the CanCreateInstance property.

  5. 在設計工具左下角,選取 Sequence 活動,然後按一下 [變數] 按鈕。 如此將會顯示變數編輯器。 按一下 [建立變數] 連結加入變數,以儲存傳送至作業的字串。 將變數命名為 msg,然後將其 [變數] 型別設為 [字串],如下圖所示。

    Screenshot that shows how to add a variable.

    再按一次 [變數] 按鈕,關閉變數編輯器。

  6. Receive 活動的 [內容] 文字方塊中,按一下 [定義] 連結,以顯示 [內容定義] 對話方塊。 選取 [參數] 選項按鈕,按一下 [加入新的參數] 連結,在 [名稱] 文字方塊中輸入 inMsg,在 [型別] 下拉式清單方塊中選取 [字串],然後在 [指派給] 文字方塊中輸入 msg,如下圖所示。

    Screenshot that shows adding Parameters content.

    這樣會指定 [接收] 活動接收字串參數,且該資料繫結至 msg 變數。 按一下 [確定] 以關閉 [內容定義] 對話方塊。

  7. SendReply 活動的 [內容] 方塊中,按一下 [定義] 連結,以顯示 [內容定義] 對話方塊。 選取 [參數] 選項按鈕,按一下 [加入新的參數] 連結,在 [名稱] 文字方塊中輸入 outMsg,在 [型別] 下拉式清單方塊中選取 [字串],以及在 [值] 文字方塊中輸入 msg,如下圖所示。

    Screenshot that shows how to add the outMsg parameter.

    這樣會指定 SendReply 活動傳送訊息或訊息合約型別,且該資料繫結至 msg 變數。 由於此為 SendReply 活動,代表 msg 中的資料是用來填入由活動傳回用戶端的訊息。 按一下 [確定] 以關閉 [內容定義] 對話方塊。

  8. 按一下 [建立] 功能表然後選取 [建立方案] 來儲存並建立方案。

設定工作流程服務專案。

工作流程執行服務已完成。 本節說明如何設定工作流程服務方案,讓裝載和執行更順利。 此方案是使用 ASP.NET 程式開發伺服器來裝載服務。

若要設定專案啟動選項

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 [MyWFService],然後選取 [屬性] 以顯示 [專案屬性] 對話方塊。

  2. 選取 [Web] 索引標籤並選取 [起始動作] 底下的 [指定頁],然後在文字方塊中輸入 Service1.xamlx,如下圖所示。

    Screenshot that shows the project properties dialog.

    這樣做會裝載在 ASP.NET 程式開發伺服器的 Service1.xamlx 中所定義的服務。

  3. Ctrl+F5 啟動服務。 [ASP.NET 程式開發伺服器] 圖示會顯示在桌面的右下角,如下圖所示。

    Screenshot that shows the ASP.NET Developer Server icon.

    此外,瀏覽器還會顯示該服務的 WCF 服務說明網頁。

    Screenshot that shows the WCF Service Help Page.

  4. 繼續前往如何:從工作流程應用程式存取服務主題,以建立呼叫這個服務的工作流程用戶端。

另請參閱