欢迎来到天天文库
浏览记录
ID:42576641
大小:64.63 KB
页数:11页
时间:2019-09-18
《WCF服务实例激活类型编程与开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、WCF服务实例激活类型编程与开发所属分类:WCF分布式开发步步为赢,SOAandEAI .NetRemoting的激活方式也有三种:SingleTon模式、SingleCall模式、客户端激活方式,WCF服务实例激活类型包括三种方式:单调服务(CallService),会话服务(SessionfulService),单例服务(SingletonService).他们之间有什么联系。WCF服务激活类型的优势和缺点,以及如何在项目里编程开发和设置服务实例。全文分为5个部分,首先一次介绍单调服务(CallService),会话服
2、务(SessionfulService),单例服务(SingletonService)的相关概念,优势和缺点,其次是示例代码分析和讲解部分,最后是全文的总结部分。结构如下:【1】单调服务(CallService)【2】会话服务(SessionfulService)【3】单例服务(SingletonService)【4】示例代码分析【5】总结。最后会上传本文的代码。【引言】: 在WCF分布式开发必备知识(2):.NetRemoting这篇文章里我已经介绍过了NetRemoting相关的概念,其中也包括NetRemoting的激
3、活方式:SingleTon模式、SingleCall模式、客户端激活方式。其实WCF服务的激活方式也与此相似。服务激活方式也是WCF借鉴NetRemoting的一个明显的例子。NetRemoting相关的概念大家可以查阅WCF分布式开发必备知识(2):.NetRemoting这篇文章。下面我们就来详细的介绍WCF服务激活类型相关的知识点。首先来介绍的是单调服务。 WCF支持三种实例激活的类型:1>.单调服务(Per-CallService):每次的客户端请求分配一个新的服务实例。类似于NetRemoting的SingleC
4、all模式;2>.会话服务(SessionfulService):则为每次客户端连接分配一个服务实例。类似于NetRemoting的客户端激活模式;3>.单例服务(SingletonService):所有的客户端会为所有的连接和激活对象共享一个相同的服务实例。类似于NetRemoting的SingleTon模式。 这里的服务激活模式是由我们定义的服务的上下文模式InstanceContextMode属性来配置的,其代码如下:public enum InstanceContextMode{ PerSession,
5、PerCall, Single} 【1】单调服务(CallService):【1.1】基本概念 单调服务(Per-CallService):每次的客户端请求分配一个新的服务实例。服务实例的生存周期紧紧限制于一次调用的开始与结束之间。客户端的每次请求都会产生新的服务实例来响应这个调用。类似于NetRemoting的SingleCall模式。执行步骤如下:1.客户端调用代理,代理将调用转发给服务。2.WCF创建一个服务实例,然后调用服务实例的方法。3.当方法调用返回时,如果对象实现了IDisposable接口,WCF将调用
6、IDisposable.Dispose()方法。4.客户端调用代理,代理将调用转发给服务。5.WCF创建一个对象,然后调用对象的方法。 单调服务的实例化模型图: 【1.2】开发配置: 单调服务开发配置十分简单,我们使用[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]配置服务属性完成。这样的WCF服务模式为单调模式,WCF框
7、架对自动更具设置的属性来决定具体的服务激活类型。代码如下所示: [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)] public class WCFServicePerCall : IWCFService,IDisposable { } 【1.3】注意: (1)[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]特性只能应用到类上。
8、 (2)如果使用了昂贵的资源,如数据库连接等非托管资源,继承IDisposable接口, //实现接口定义的方法Dispose()方法显示释放资源。但是也有弊端,频繁地创建与销毁实例,仍然会对性能造成一定的影响。 (3)对于WCF服务而言,单调服务可以算是
此文档下载收益归作者所有