WS 可靠会话

此示例演示可靠会话的用法。可靠会话为可靠消息传递和会话提供支持。可靠消息传递在失败时会重新尝试通信,并允许指定传递保证(如消息按顺序抵达)。会话在调用之间将保持客户端的状态。此示例实现了用来保持客户端状态的会话,并指定了按顺序传递保证。此示例基于实现计算器服务的入门示例。可靠会话功能是在客户端和服务的应用程序配置文件中启用和配置的。

在此示例中,服务由 Internet 信息服务 (IIS) 承载,客户端是一个控制台应用程序 (.exe)。

提示

本主题的末尾介绍了此示例的设置过程和生成说明。

此示例使用 wsHttpBinding。绑定是在客户端和服务的配置文件中指定的。绑定类型是在终结点元素的 binding 属性中指定的,如下面的示例配置中所示。

<endpoint address=""
          binding="wsHttpBinding"
          bindingConfiguration="Binding1" 
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

终结点包含一个 bindingConfiguration 属性,该属性引用一个名为“Binding1”的绑定配置。该绑定配置通过将 reliableSession elementenabled 属性设置为 true 来启用可靠会话。有序会话的传递保证是通过将有序属性设置为 truefalse 来控制的。默认值为 true

<bindings>
    <wsHttpBinding>
        <binding name="Binding1">
            <reliableSession enabled="true" />
        </binding>
    </wsHttpBinding>
</bindings>

服务实现类将实现 PerSession 实例化,以便针对每个客户端维护一个单独的类实例,如下面的示例代码中所示。

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)] public class CalculatorService : ICalculator
{
    ...
}

运行示例时,操作请求和响应将显示在客户端控制台窗口中。在客户端窗口中按 Enter 可以关闭客户端。

    Add(100,15.99) = 115.99
    Subtract(145,76.54) = 68.46
    Multiply(9,81.25) = 731.25
    Divide(22,7) = 3.14285714285714

    Press <ENTER> to terminate client.

设置、生成和运行示例

  1. 请确保已经执行了 Windows Communication Foundation 示例的一次性安装过程

  2. 若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照生成 Windows Communication Foundation 示例中的说明进行操作。

  3. 若要用单机配置或跨计算机配置来运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.