程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WF4.0實戰(二十一):Windows Server AppFabric中宿主WF4.0應用程序

WF4.0實戰(二十一):Windows Server AppFabric中宿主WF4.0應用程序

編輯:關於.NET

在之前的一篇博文Windows Server AppFabric介紹上,簡單的介紹了一下Windows Server AppFabric。這篇文章中,我將介紹一下,如 何在將WF4.0應用程序宿主到Windows Server AppFabric中,以及如何持久化配置和追蹤配置。

首先,我將使用asp.net和WF4.0實現一個簡單的Pizza訂購系統。然後將這個應用系統宿主到Windows Server AppFabric上,實現持久化 ,跟蹤等配置。

Pizza訂購系統:

分兩部分,一個是asp.net應用程序實現UI界面;另外一個是WF Service實現業務邏輯,系統類似下圖。

實現WF Service:

業務處理過程是:客戶在asp.net客戶端選擇Pizza類型和填寫Pizza的數量,然後提交給WF Service處理。WF Service根據選擇的Pizza 類型查詢出價格,然後計算Pizza的總價格,並將這個價格返回給asp.net客戶端。然後購買者確認是否訂購,確認之後,WF Service報告對 應的信息。這個流程我分成了兩個部分。

第一部分如下圖:獲取Pizza的價格。

第二部分是:確認訂購,如下圖:

客戶端和服務端交互的數據實體代碼如下;

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

實現客戶端:

一個提交界面,很簡單,如下圖:

後台代碼:

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

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

如何將這個應用程序宿主到Windows Server AppFabric。

首先:要安裝Windows Server AppFabric,安裝的順序見Windows Server AppFabric介紹。

第二步:生成WCF的zip包,選擇服務項目,右鍵選擇build deplyment packpage。在\obj\Debug\Package路徑下面可以看到生成的zip文 件,如下圖:

第三步:打開IIS,新建一個網站,命名為:RichsPizzaService,端口改為90,如下圖:

第四步:選擇部署,如下圖

第五步:選擇包,然後一直點下一步,直到完成。

第六步:配置持久化:選擇服務,右鍵配置,如下圖:

配置工作流暫留:

配置工作流主機管理:

第七步:配置跟蹤:

1、在\obj\Debug\Package中新建一文本文件,輸入下面文本,將其後綴改成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>

2、配置監控:在下面界面中選擇上面新建的tp文件,點擊確認。

效果:

1、在aspx頁面上選擇,一種pizza,輸入你要的數量,如下圖:

2、點擊提交,獲得pizza的總價格,如下圖:

3、點擊確認,pizza店會告訴你,你的pizza已經在路上了,你等著就行了。

4、Windows Server AppFabric上進行查看:

下圖告訴你,已經有7次pizza的預定了。

選擇一個實例,查看跟蹤信息:

你將會看到如下的事件信息:

這個應用程序很簡單,就不能看持久化的效果了。

總結:這篇文章教你如何在Windows Server AppFabric上發布和使用WF4.0應用程序,如何配置Windows Server AppFabric。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved