常见 Windows Server AppFabric 示例应用程序

本示例应用程序包含一个示例销售客户端应用程序和一个销售服务应用程序。 本示例应用程序与其他 Windows Server AppFabric 示例一起,用作帮助演示示例中所示的 AppFabric 功能的常用应用程序。

销售服务应用程序建立了一个简单的订单处理工作流模型,该模型可以利用由 AppFabric 提供的内置暂留和跟踪支持。 服务应用程序向客户端应用程序提供项目编录,然后模拟处理每个客户端所下的订单。

备注

提供这些示例仅是为了教育目的。 它们不能用于生产环境,并且尚未在生产环境中进行测试。 Microsoft 不对这些示例提供技术支持。

可以从 https://go.microsoft.com/fwlink/?LinkId=169336 下载其中包含示例应用程序的 AppFabric 的示例程序包。

先决条件

本示例应用程序面向具有以下经验或知识水平的读者:

  • 基本了解 Internet 信息服务 (IIS)

  • 基本了解 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 应用程序

  • 基本了解 Windows PowerShell

  • 基本了解 Microsoft SQL Server

示例应用程序位置和文件

文件名 描述

OrderApplication.sln

两个项目的解决方案文件

SaleClient

包含销售客户端项目文件的文件夹

App.config、OrderManager.cs、Program.cs、SaleClient.csproj、SaleClientForm.cs、SaleClientForm.Designer.cs、SaleClientForm.resx、AssemblyInfo.cs、Resources.Designer.cs、Resources.resx、Settings.Designer.cs、Settings.settings

销售客户端项目文件

OrderApplication

包含销售服务项目文件的文件夹

CancelOrder.cs、CatalogInitializer.cs、CatalogTypes.cs、ProcessNewOrder.cs、SaleService.csproj、SaleService.xamlx、SaleServiceTracking.tp、ShippingProcessor.cs、web.config、AssemblyInfo.cs

销售服务项目文件

设置本示例应用程序

  1. 使用管理权限启动 Visual Studio 2010 并打开 <samples>\SampleApplication\OrderApplication\OrderApplication.sln,其中 <samples> 是安装 AppFabric 示例的路径。 当您收到创建此虚拟目录的提示时,请单击“是”。

    备注

    这些步骤演示如何使用 Visual Studio 2010 部署和生成订单应用程序以及如何配置用于销售服务的默认应用程序池。

  2. 单击“生成”菜单,然后单击“生成解决方案”。 通过看输出窗口中是否有错误来验证两个项目的生成。

  3. 依次单击“开始”、“所有程序”、Windows Server AppFabric,然后单击“Internet 信息服务(IIS)管理器”启动 Internet 信息服务 (IIS) 管理器。

  4. 展开左侧树视图中的服务器节点,然后单击“应用程序池”。

  5. 右键单击“应用程序池”列表中的 DefaultAppPool,然后单击“高级设置”。

  6. 通过使用下拉选项将“.NET Framework 版本”设置为 v4.0,然后单击“确定”。

运行本示例

  1. 运行客户端应用程序: <samples>\SampleApplication\ OrderApplication\SaleClient\bin\Debug\SaleClient.exe.

  2. 此表单应用程序向销售服务发出一个发送最新每日销售编录的请求。 根据服务的运行状态,该操作可能需要花费大约十秒钟的时间。

  3. 注意所返回编录的过期信息,该信息指示如果不下订单,则编录会在大约三分钟之后过期。 对于 24 英寸的监视器,将“订单数量”更改为 2,然后按 Tab 键更新该订单。 “总费用”现在应该为 $531.98。 如果该编录已过期,则可以单击“获取新编录”从服务请求新的销售编录。

  4. 在收到销售编录的三分钟之内(编录将在三分钟之后过期),单击“订购”并确保订单状态更改为“已收到订单”。 工作流中的 StatusText 变量捕获此状态更改。 可以使用跟踪配置文件配置应用程序以跟踪此变量。 销售客户端应用程序将轮询工作流并显示订单已在一分钟之内填写完成。 一分钟之后,将发送该订单。 可以通过在发送订单之前随时单击“取消订单”来取消订单,但不要取消该订单。

  5. 在“订单 ID”文本框中右键单击所选择的值,然后单击“复制”以将订单 ID 复制到剪贴板。

  6. 关闭销售客户端应用程序。 当某个托管工作流中不需要任何操作时,可以暂留该工作流以便实现可伸缩性。 在本示例中,您刚刚复制的订单 ID 用于将暂留的工作流实例与客户端请求相关。

  7. 启动客户端应用程序的一个新实例 <samples>\SampleApplication \OrderApplication\SaleClient\bin\Debug\SaleClient.exe

  8. 右键单击“订单 ID”文本框,然后单击“粘贴”以将订单 ID 从剪贴板粘贴到表单底部的“订单 ID”文本框中。

  9. 单击“重新调用 PO”。 这应该会重新调用您的活动订单并且呈现该订单的当前状态。 工作流模拟对订单的后端处理以及延迟。 大约两分钟之后,“订单状态”将循环进入以下状态: “已收到订单”、“已填写订单”和“已发送订单”。 可以使用自定义跟踪配置文件配置主机以跟踪订单的状态更改,以便获得自定义报告。 当处理该订单时,您将运行销售客户端应用程序的一个新实例以取消某个订单。

  10. 将包含您所下订单的销售客户端应用程序移动到屏幕的右侧。

  11. 启动客户端应用程序的一个新实例 <samples>\SampleApplication \OrderApplication\SaleClient\bin\Debug\SaleClient.exe

  12. 单击“获取销售编录”以接收新的编录。 根据服务的运行状态,该操作可能需要花费大约十秒钟的时间。

  13. 在表单中编写销售编录时,将“双核 2.8 Ghz 处理器”的“订单数量”更改为 20。按 Tab 键更新订单。 “总费用”现在应该为 $6,119.80。

  14. 在新的编录过期之前,单击“订购”并确认订单状态更改为“已收到订单”。

  15. 在发送订单之前直接单击“取消订单”并确认订单状态更改为“已取消订单”。

删除已部署的销售服务 Web 应用程序

  1. 依次单击“开始”、“所有程序”、Windows Server AppFabric,然后单击“Internet 信息服务(IIS)管理器”启动 Internet 信息服务 (IIS) 管理器。

  2. 展开左侧树视图中的服务器节点。 展开“站点”,然后展开“默认网站”。

  3. 单击 OrderApplication 节点,然后按“删除”。

  4. 单击“是”确认删除所选择的应用程序。

说明

销售服务应用程序是使用 Microsoft Visual Studio 2010 中的 WCF 工作流服务应用程序模板生成的。销售服务提供的编录用于模拟在报纸或在线站点中运行的销售。 此销售仅在有限的时间内可用。 基于表单的客户端应用程序请求销售编录之后,用户有三分钟时间来下订单,三分钟之后工作流会使该编录过期。

当用户下订单时,销售服务会提供一个订单 ID。 此订单 ID 用于将暂留的工作流实例与客户端请求相关。 客户端请求可以通过相关性重新激活工作流,以检查订单的状态或在订单尚未发送时取消订单。 对销售服务下订单之后,大约三分钟之内订单的状态从“已收到订单”更改为“已填写订单”。 大约三分多钟之后,订单的状态更改“已发送订单”。

您可以使用一个示例跟踪配置文件 (SaleServiceTracking.tp) 在工作流的“StatusText”和“PurchaseTotal”变量上启用跟踪。 并且您可以在工作流中的不同点上将服务配置为跟踪与这些变量有关的信息。 以下信息是使用本示例中提供的跟踪配置文件跟踪的:

  • 编录已过期

  • 已取消订单

  • 已填写订单

  • 已发送订单 ReplaceThisText

  • 与已发送订单关联的全部购买

在跟踪数据库中记录跟踪信息之后,您可以通过跟踪的数据生成状态报告。 此跟踪信息将用于其他示例中。

  2011-12-05