您的位置:首页 > 其它

【WCF--初入江湖】08 并发与实例模式

2014-07-05 04:46 260 查看

08 并发与实例模式




1. 实例上下文模式


     一个服务代理:servicePoxy

ChannelFactory<IService1> factoryservicel =
new ChannelFactory<IService1>("BasicHttpBinding_Service");

IService1 servicePoxy = factoryservice.CreateChannel();


调用N次方法:

servicePoxy.GetData(3);


[b]单调模式PerCall :[/b]IService1的实现类生成N个

[b]会话(PerSession):[/b]IService1的实现类生成1个

[b][b]单例(Single) :[/b][/b]IService1的实现类生成1个

[b][b]进一步测试说明:[/b][/b]

单调模式PerCall :IService1的实现类生成个数=所有方法被调用的次数的综合

会话(PerSession):IService1的实现类生成个数=[b]服务代理类实例对象个数[/b]

单例(Single) :IService1的实现类生成个数=永远是1个

  1.1 [b]实例上下文模式--单调模式PerCall[/b]

    由于WCF的并发是针对某个封装了服务实例的InstanceContext而言的,
  但是对单调的实例上下文模式,WCF服务端运行时总是创建一个全新的InstanceContext来处理每一个请求,
  不管该请求是否来自相同的客户端。

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class ServiceClass : IService1
{

}


  1.2 实例上下文模式--会话(PerSession)

    在基于会话的实例上下文提供机制下,被创建出来封装服务实例的InstanceContext与会话(客户端或者服务代理)绑定在一起。
  也就是说,InstanceContext和服务代理是具有一一对应的关系。

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class ServiceClass : IService1
{

}


  1.3 实例上下文模式--单例(Single)

    单例上下文实例模式,是指所有的客户端共享同一个服务实例的InstanceContext。

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class ServiceClass : IService1
{

}



2. 实例上下文模式--实例演示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: