WS 可靠会话

wsReliableSession 示例演示了可靠会话的使用。 可靠会话为可靠消息传递和会话提供支持。 可靠消息传送在失败时重试通信,并允许指定传递保证,例如消息的有序到达。 会话在调用之间将保持客户端的状态。 此示例实现用于维护客户端状态的会话,并指定按顺序传递保证。

此示例基于《入门指南》,实现了计算器服务。 可靠会话功能在客户端和服务的应用程序配置文件中启用和配置。

在此示例中,该服务托管在 Internet Information Services (IIS)中,客户端是控制台应用程序(.exe)。

注释

本示例的设置过程和生成说明位于本主题末尾。

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

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

终结点包含一个bindingConfiguration属性,引用了一个名为“Binding1”的绑定配置。该绑定配置通过将<可靠会话>enabled属性设置为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. 使用以下命令安装 ASP.NET 4.0。

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. 确保已为 Windows Communication Foundation 示例 执行One-Time 安装过程。

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

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