并发与实例化.pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并发与实例化

并发与实例化;会话 实例化 并发;会话是在两个终结点之间发送的所有消息的一种相互关系 在服务协定上设置 System.ServiceModel.ServiceContractAttribute. SessionMode的值 Allowed:默认:客户端可以进行连接,并选择建立会话或不建立会话 Required:所有调用都必须是同一个对话的一部分 NotAllowed:禁止会话;它们由应用程序显示启动和终止。 会话期间传递的消息按照接收消息的顺序进行处理。 Session的创建和结束都有来自Client端的调用来实现 basicHttpBinding不支持Session ;服务对象是服务类的实例。 WCF实例管理就是指当WCF服务请求到达WCF服务端后,WCF宿主(ServiceHost)创建服务对象的方式: (1)是新建一个服务对象还是重用一个服务对象? (2)在什么情况下销毁服务对象?;为了能同时响应多个WCF客户端的请求,WCF服务端应用程序是多线程的,因此,WCF服务对象是运行在多线程环境下。 WCF并发管理就是解决WCF服务对象在多线程环境下如何高效运行并避免由于线程推进顺序不当造成“死锁”或由于共享资源而引发“数据读写错误”的问题。 ;当服务接收到请求时,会创建一个ServiceDescription对象来封装服务的描述信息,然后,创建一个实现了服务契约的类的对象来响应请求。 ServiceDescription对象表示一个完整的服务的内存中说明,包括服务的所有终结点及其各自地址、绑定、协定和行为的规范。 ;行为:影响运行时操作的WCF类,技术上是通过行为来实现实例化和并发 在WCF中,行为(behavior)是一组类,可以用亍控制WCF基础架构中的各种组成要素。 行为可以以代码属性的形式直接定义在代码中(编译后成为类型元数据),也可以放到系统配置文件(app.config或web.config)里。 当客户端使用ChannelFactory创建代理,服务端ServiceHost创建服务对象时,都会从系统配置文件或程序集元数据中加载行为,并将其插入到适当的对象中。 ;APP.config中的行为;[ServiceBehavior(InstanceContextMode= InstanceContextMode.Single,ConcurrencyMode= ConcurrencyMode.Single)] public class MyWCFService: IMyWCFService{//……} 编译之后,服务行为将会保存到程序集的元数据中,并且与服务对象的类型(MyWCFService)关联起来。 ;如果把服务对象看成是学生,那么,“行为”可以看成是“学生守则”,“学生守则”规定了学生该做什么和不该做什么。 ;根据“管理对象”的不同,WCF中主要有四种“行为”: 1.Service behaviors:管理服务对象 2.Endpoint behaviors:管理终结点 3.Operation behaviors:定义操作的特性 4.callback behaviors:用于实现回调 确定WCF并发与实例访问特性的是一种“服务端行为(Service behavior)” ;可以从每个服务都拥有的ServiceDescription对象的Behaviors属性中了解此服务拥有哪些行为。 例题Concurrency中 ;当有多个WCF请求到达服务端时,ServiceHost对象到底应该创建多少个服务对象,这就是实例化(instancing)对象的问题。 WCF中两个控制并发的行为: ServiceBehaviorAttribute.InstanceContextMode用于定义实例化模式。 ServiceBehaviorAttribute.ConcurrencyMode用于控制服务实例内的线程并发。 ;PerCall:服务端为每一次的客户调用创建一个新的服务对象) instanceContext 。(一次方法调用) PerSession:服务端为每一个客户代理创建一个服务对象) instanceContext 。(如果要使用PerSession,必须在契约级别打开会话SessionMode=Requried,在服务级别设置nstanceContextMode= PerSession) Single:仅有一个对象为所有的客户调用服务) instanceContext 高度注意: 客户调用是指一次方法调用,而客户代理是指客户端创建的用于进程调用WCF服务的代理对象!;单调模式:每次都会创建一个新的对象。 步骤如下: 客户端创建代理对象(Proxy 客户端调用代理对象的一个契约操作,代理对象将其

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档