任务 3:创建持久性服务客户端

在本任务中,您将创建一个对持久性服务调用操作的简单客户端。测试工具 WcfTestClient.exe 供 WCF 服务库模板使用。

创建客户端

  1. 在 SimpleDurableService 解决方案中,右击**“解决方案资源管理器”**窗格中的解决方案节点。

  2. 导航到**“添加”,选择“新建项目”**。

  3. 在**“新建项目”对话框中的“Windows”下,选择“控制台应用程序”**。

  4. 将项目命名为 DurableServiceTestClient,然后单击**“确定”**。

  5. 右击 DurableServiceTestClient 项目节点,然后选择**“添加引用”**。

  6. 在**“添加引用”对话框中的“.NET”选项卡下,选择 System.ServiceModel 程序集,然后单击“确定”**。

  7. 在 C# 源文件中添加下面的 using 语句:

如果您创建的是 Visual Basic 解决方案,请右击 DurableServiceTestClient 项目节点,然后选择**“属性”。选择“引用”选项卡,然后在“导入的命名空间”下选中“System.ServiceModel”**。

  1. 使用 SvcUtil.exe 生成持久性服务的代理代码和配置文件。
    使用 SvcUtil.exe
    若要使用 SvcUtil.exe,请参见 ServiceModel Metadata Utility Tool
    生成代理代码和配置文件之后,通过以下操作将这些文件添加到 DurableServiceTestClient 项目:
    1. 导航到**“解决方案资源管理器”**窗格。
    2. 右击 DurableServiceTestClient 项目节点。
    3. 突出显示**“添加”并选择“现有项”**。
    4. 导航到 SvcUtil.exe 生成配置文件和代理代码文件的文件夹。
    5. 选择这些文件,然后单击**“确定”**。
    6. 将您的配置文件重命名为 App.config(如果它尚未使用此名称)。
  2. 将以下代码添加到 Main 方法实现:

创建持久性服务客户端与创建常规 WCF 服务客户端的方法相同。根据服务的代理代码创建该客户端的一个新实例。接下来,先调用 Open,再调用服务操作。最后,调用 Close 以关闭客户端。

  1. 若要在 SimpleDurableService 解决方案中配合使用客户端与持久性服务,必须从 SimpleDurableService 项目属性中删除命令行参数。为此,请执行下列步骤:

    1. 右击 SimpleDurableService 项目节点,然后选择**“属性”**。
    2. 选择**“调试”选项卡,然后在详细信息窗格中的“启动选项”**下,移除文本框中的 /client:"WfcTestClient.exe"。
  2. 右击 SimpleDurableService 解决方案节点,然后选择**“属性”**。

  3. 在“属性页”对话框中,选择**“多启动项目”**。

  4. 如果 SimpleDurableService 未作为顶级项列在列表中,请使用列表框侧面的箭头将它设为顶级项。您需要执行此操作,以便该服务在客户端应用程序尝试对它调用任何操作之前开始运行。

  5. 对于列表中的每个项目,将操作从**“无”更改为“启动”**。

  6. 单击**“应用”,然后单击“确定”**。

  7. 生成服务和客户端项目。您可以在 IIS、Windows 应用程序或任何其他宿主进程中承载持久性服务,但对于本教程,您将在 WfcSvcHost.exe 中承载持久性服务。WcfSvcHost.exe 是一种承载服务的开发人员工具,以供测试使用。
    从客户端的命令行接口,您将看到以下输出:

    The current value is 3
    The current value is -1
    The current value is -5
    Press <ENTER> to shut down the client.
    

    查看每个操作后发生的持久性(EndPersistence 除外)的一种方法是,从 https://www.microsoft.com/downloads 安装 Microsoft SQL Server Management Studio Express 并通过客户端应用程序设置调试点。达到那些调试点后,在 NetFx35Samples_DurableServiceStore 数据库中查看 InstanceData 表。您会看到一个新项添加到了表中,在完成 EndPersistence 调用之前,每次操作后该项都进行更新。完成 EndPersistence 调用后,将移除该表项。
    查看持久性服务的值的另一种方法是:从客户端对服务进行第一次操作调用,并在 Visual Studio 中设置操作调用的断点。在执行第三次操作调用之前,关闭并重新启动服务。立即执行操作调用。服务状态现在从持久性数据库中还原,您将能看到服务返回当前值所需的答复。

另请参见

任务

任务 1:定义和实现持久性服务协定
任务 2:为持久性服务启用持久性

其他资源

教程:创建持久性服务

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。