WCF学习(六):实例

准备技术:

WCF服务契约、数据契约等基础知识

Donet基本开发

内容概要:

三种实例激活类型

单调服务

会话服务

单例服务

实例类型

WCF支持三种实例类型:PerCall、PerSession、Single。PerCall就是单调服务会为每次客户端的请求去分配一个新的服务实例;PerSession会为每次客户端连接分配一个实例;Single所有的客户端会去共享一个相同的服务实例。

WCF是通过ServiceBehavior特性中的InstanceContextMode属性来告诉服务实例采用那种类型,InstanceContextMode属性是一个InstanceContextMode的枚举类型,InstanceContextMode有三个成员:PerCall(单调),PerSession(会话),Single(单例)。

单调服务

单调服务实例只存在于客户端的调用过程中,每次客户端的一个请求就会获得一个新的服务实例。也就说我们在客户端的每次调用一个方法时都会去重新返回一个新的实例给我们。下面我们看一个配置为单调服务实例的例子。

首先看我们的服务契约很简单IBehaverContract.cs:

[ServiceContract(Name="IBehaverContract")]
  public interface IBehaverContract
  {
    [OperationContract(Name="TestBehavor")]
    string TestBehavor();
}

我们的服务实例BehaverContract.cs为:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCal)]    public class BehaverContract : ServiceContracts.IBehaverContract,IDisposable    {        private int _Count = 0;        public BehaverContract()        {            Console.Write("BehaverContract.BehaverContract()\n");        }        public string TestBehavor()        {            _Count++;            return String.Format("The number is :{0}", _Count);        }        public void Dispose()        {            Console.Write("BehaverContract.Dispose()\n");        }}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索实例
, 类型
, 服务
, public
, 一个
, 实例学习
单调队列
,以便于您获取更多的相关知识。

时间: 2024-09-19 08:17:40

WCF学习(六):实例的相关文章

[老老实实学WCF] 第六篇 元数据交换

原文:[老老实实学WCF] 第六篇 元数据交换 老老实实学WCF 第六篇 元数据交换   通过前两篇的学习,我们了解了WCF通信的一些基本原理,我们知道,WCF服务端和客户端通过共享元数据(包括服务协定.服务器终结点信息)在两个终结点上建立通道从而进行通信.我们通过手写代码(或配置)的方式为服务端编写了元数据信息,没有借助元数据交换就实现了通信.然而在实际应用中,元数据往往是很多的,而且重复编写元数据的工作也是不值得的,因此必然会用到元数据交换的方式让客户端获取元数据,本篇我们就来进一步了解一下

WCF 学习总结2 -- 配置WCF

前面一篇文章<WCF 学习总结1 -- 简单实例>一股脑儿展示了几种WCF部署方式,其中配置文件(App.config/Web.config)都是IDE自动生成,省去了我们不少功夫.现在回过头来看看IDE提供的Wcf Service Library项目模板中的默认服务端配置文件--App.config里面究竟有什么秘密. 服务端的配置文件主要是对services.bindings.behaviors的配置.在默认的App.config中,使用的是WCF Framework定义好的wsHttpB

通过自定义ServiceHost实现对WCF的扩展[实例篇]

在<原理篇>中我们谈到了通过自定义ServiceHost对WCF进行扩展的本质,以及在IIS/WAS寄宿情况下ServiceHostFactory的作用.接下来通过一个具体的例子来演示如何通过WCF扩展实现以Unity为代表的IoC框架的集成,以及应用该扩展的ServiceHost和ServiceHostFactory如何定义.[源代码从这里下载] 目录 一.IoC/DI简介 步骤一.自定义InstanceProvider:UnityInstanceProvider 步骤二.创建服务行为:Un

通过“四大行为”对WCF的扩展[实例篇]

为了让读者对如何利用相应的行为对WCF进行扩展有个深刻的认识,在这里我提供一个简单的实例演示.本实例模拟的场景是这样的:我们创建一个支持多语言的资源服务,该服务旨在为调用者提供基于某种语言的文本型资源.但是,我们不希望客户端在每次调用服务的时候都显式地制定具体的语言,而是根据客户端服务调用线程表示语言文化的上下文来自动识别所需的语言.[源代码从这里下载] 要让资源服务具有识别语言文化的能够,我们必须将客户端服务调用线程当前的语言文化信息(具体来说就是Thread的两个属性:CurrentUICu

学习小实例--滚动条的简单实现_经验交流

效果: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="

WCF 学习总结1 -- 简单实例

从VS2005推出WCF以来,WCF逐步取代了Remoting, WebService成为.NET上分布式程序的主要技术.WCF统一的模型整合了以往的 WebService.Remoting.MSMQ 等技术,让分布式开发变得更加简单,方便,快捷.   (上图选自<Programming WCF Services>) WCF基本概念(ABC): 1.地址(Address):决定服务的地址:2.绑定(Binding):决定服务的细节:3.契约(Contract):服务的定义(抽象),决定消息结构

WCF,会话实例为什么不执行回调?

问题描述 [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession,ConcurrencyMode=ConcurrencyMode.Reentrant)]publicclassMyService:IService{staticList<ISomeCallbackContract>m_Callbacks=newList<ISomeCallbackContract>();publicvoidDoSomethi

[WCF安全系列]实例演示:TLS/SSL在WCF中的应用[SSL over TCP]

在接下来的系列文章中我们正是讨论关于身份认证的主题.在前面我们已经谈到了,WCF中的认证属于"双向认证",既包括服务对客户端的认证(以下简称客户端认证),也包括客户端对服务的认证(以下简称服务认证).客户端认证和服务认证从本质上并没有什么不同,无非都是被认证一方提供相应的用户凭证供对方对自己的身份进行验证.我们先来讨论服务认证,客户端认证放在后续的文章中. 在<从两种安全模式谈起>中,我们对TLS/SSL进行了简单的介绍.我们知道,客户端和服务在为建立安全上下文而进行的协商

linux多线程学习(六)——信号量实现同步。

信号量的互斥同步都是通过PV原语来操作的,我们可以通过注册两个信号量,让它们在互斥的问题上互动,从而达到同步.通过下面实例就可以很容易理解:   #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <semaphore.h> #include <errno.h> #define return_if_fail(p