在之前的一篇博文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。
本文配套源碼