wsReliableSession 示例演示了可靠会话的使用。 可靠会话为可靠消息传递和会话提供支持。 可靠消息传送在失败时重试通信,并允许指定传递保证,例如消息的有序到达。 会话在调用之间将保持客户端的状态。 此示例实现用于维护客户端状态的会话,并指定按顺序传递保证。
此示例基于《入门指南》,实现了计算器服务。 可靠会话功能在客户端和服务的应用程序配置文件中启用和配置。
在此示例中,该服务托管在 Internet Information Services (IIS)中,客户端是控制台应用程序(.exe)。
注释
本示例的设置过程和生成说明位于本主题末尾。
该示例使用 wsHttpBinding
。 绑定在客户端和服务配置文件中指定。 绑定类型在终结点元素 binding
的属性中指定,如以下示例配置所示。
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
终结点包含一个bindingConfiguration
属性,引用了一个名为“Binding1”的绑定配置。该绑定配置通过将<可靠会话>的enabled
属性设置为true
,从而启用可靠会话。 有序会话的传递保证是通过将有序属性设置为 true
或 false
来控制的。 默认值为 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.
设置、生成和运行示例
使用以下命令安装 ASP.NET 4.0。
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
确保已为 Windows Communication Foundation 示例 执行One-Time 安装过程。
若要生成解决方案的 C# 或 Visual Basic .NET 版本,请按照 生成 Windows Communication Foundation 示例中的说明进行操作。
若要在单台计算机或跨计算机配置中运行示例,请按照 运行 Windows Communication Foundation 示例中的说明进行操作。