首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WF4.0 實戰(二十一):Windows Server AppFabric 宿主 WF4 應用與持久化/追蹤配置

     編輯:關於.NET

承接上篇 AppFabric 介紹,本文實作 Pizza 訂購系統,示範將 WCF Workflow Service 部署至 AppFabric,並配置 SQL 持久化與自訂追蹤。

系統架構

  • ASP.NET 前端:提交訂單、確認訂購
  • WF Service:兩階段流程 (取得價格 → 確認訂購)
系統架構圖

WF Service 雙階段流程

階段一:取得 Pizza 價格 階段二:確認訂購

資料契約

[DataContract(Namespace="urn:pizzas")]
public class PriceResponse
{
    [DataMember] public int OrderId { get; set; }
    [DataMember] public double Price { get; set; }
}

ASP.NET 前端呼叫

protected void Button1_Click(object sender, EventArgs e)
{
    var client = new FeedMeClient("BasicHttpBinding_IFeedMe");
    var prse = client.GetPizzaCost(DropDownList1.Text, int.Parse(TextBox1.Text));
    ViewState["id"] = prse.OrderId;
    Label1.Text = $"訂單號碼:{prse.OrderId} 價格:{prse.Price}";
    client.Close();
}

protected void Button2_Click(object sender, EventArgs e)
{
    if (ViewState["id"] != null)
    {
        var client = new FeedMeClient("BasicHttpBinding_IFeedMe");
        Label1.Text = client.ConfirmOrder(int.Parse(ViewState["id"].ToString()));
        client.Close();
    }
}

部署至 AppFabric 步驟

  1. 安裝 AppFabric、Web Deployment Tool
  2. 專案右鍵 Build Deployment Package 產生 .zip
  3. IIS 新增網站 (Port 90)
  4. 匯入套件部署
  5. 配置持久化:工作流閒置卸載/持久化時間、連線字串
  6. 配置追蹤:建立 .tp 追蹤設定檔,涵蓋工作流實例、活動狀態、變數、錯誤傳播、書簽恢復、自訂追蹤
Deployment Package 產出 IIS 新增網站 部署套件匯入 選擇套件部署 服務右鍵配置持久化 工作流暫留配置 工作流主機管理配置 監控配置選擇 .tp 檔

追蹤設定檔範例

<trackingProfile name="CustomServiceProfile">
  <workflow activityDefinitionId="*">
    <workflowInstanceQueries>
      <workflowInstanceQuery><states><state name="*"/></states></workflowInstanceQuery>
    </workflowInstanceQueries>
    <activityStateQueries>
      <activityStateQuery activityName="GetPizzaCost">
        <states><state name="Closed"/></states>
        <variables><variable name="quantity"/><variable name="type"/></variables>
      </activityStateQuery>
    </activityStateQueries>
    <faultPropagationQueries><faultPropagationQuery faultSourceActivityName="*" faultHandlerActivityName="*"/></faultPropagationQueries>
    <bookmarkResumptionQueries><bookmarkResumptionQuery name="*"/></bookmarkResumptionQueries>
    <customTrackingQueries><customTrackingQuery name="*" activityName="*"/></customTrackingQueries>
  </workflow>
</trackingProfile>

執行效果與 AppFabric 儀表板監控

前端提交訂單 取得價格結果 確認訂購成功 AppFabric 實例統計 追蹤事件詳細資訊 事件資訊清單

透過 AppFabrit 管理介面可監控實例執行狀態、檢視追蹤記錄,實現生產級 WF 服務營運。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved