WCF
海蓝树
做个有思想的“猿”
展开
-
WCF中实例模式(InstanceContextMode)与会话模式(SessionMode)
InstanceContextMode为服务端实现服务契约类的实例模式,有三种类型,分别为:PerCall-每次服务操作调用创建一次,调用完后进行销毁;PerSession-同一个会话期间创建一次,客户端代理第一次操作(IsInitiating = true)调用创建,调用代理的Close方法销毁或者调用IsTerminating服务操作销毁;Single-服务只会创建一次,服务开始...转载 2020-03-31 11:35:26 · 943 阅读 · 0 评论 -
传说中WCF会话(Session)
在标题中我加了一个大家都很熟悉的单词——Session,熟吧?玩过Web开发的朋友肯定在梦中都会见到她。在Web中为什么要会话呢?毕竟每个用户在一个Web应用中可能不止进行一次操作,比如,某二手飞机交易网站,用户A登陆后,可能他会修改他的个人信息,他也有可能看好了一架二手飞机,打算入手,就把商品放到他的“购物车”中,这些过程中,都会产生许多与用户A相关的数据,这些数据只是对A有效,而当用户B登...转载 2020-03-31 11:19:13 · 260 阅读 · 0 评论 -
wcf服务的状态
默认wcf服务的类是无状态的,就像web service一样,不能保存状态信息。即每次调用都是创建一个新的对象,所以一般我们都不会在wcf服务类中添加属性。上面只是默认情况,因为wcf为我们提供了配置选项,我们只需显式指定ServiceBehaviorAttribute的InstanceContextMode的值即可实现有状态的服务,还可以实现全局的。ServiceBehavior是一个类特性,...原创 2020-03-31 09:27:47 · 276 阅读 · 0 评论 -
WCF的状态设定
WCF的状态设定是由以下两步完成的,首先要在ServiceContract里面利用参数SessionMode来使Session有效化,具体代码为:[ServiceContract(SessionMode=SessionMode.Required)];其次是在ServiceBehavior里面利用参数InstanceContextMode来设定到底使用那一种Session方式,具体代码如下:[Ser...原创 2020-03-31 08:45:11 · 227 阅读 · 0 评论 -
在 WCF 中使用高效的 BinaryFormatter 序列化
在 OEA 框架中,是使用 WCF 作为数据传输框架。但是使用 WCF 内部的二进制序列化,序列化后的数据大小,要比使用传统的 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter 类进行序列化后的数据大小要大得多。作为使用 .NET 框架的系统内部互联,往往期望在使用 WCF 获取统一传输方案的同时,还能得到 Binar转载 2015-03-09 16:14:16 · 1467 阅读 · 0 评论 -
WCF实例与并发的一些测试
概要实例管理可以理解为服端怎么管理(创建与销毁)Service 类的实例而并发可以理解为WCF框架在收到客户端请求后针对目标Service实例的派发行为,Single表现为如果Service已经在处理请求了,那么新的请求(注意是针对同一个Service实例的)将排队,如果是Mutiple那么请求将立即执行,其实质是请求的处理基于同一个Service实例的锁定同步行为。进一步说明转载 2016-04-04 10:33:53 · 2033 阅读 · 0 评论 -
.NET简谈事务、分布式事务处理
数据库事务处理数据库事务处理我们基本都很熟悉了,begin Transaction ……end Transaction,将要进行事务性的操作包在代码段里,为了便于文章有条理的讲解下去,我还是在这里穿插一个简单的小示例,便于与后面的代码进行对比分析。例1:我们在数据库里建两张表,也就是很简单一列信息。表1名:test表2名:test2目的是为了掩饰事务转载 2016-03-13 16:15:32 · 848 阅读 · 0 评论 -
WCF学习教程地址
系列课程 >跟我一起从零开始学WCF系列课程跟我一起从零开始学WCF系列课程(1):WCF概述 (Level 200) 讲 师:徐长龙 课程简介:从本堂课开始我们将开启一个新的系列-Windows Communication Foundation(WCF)。本系列课程将听众假定为对WCF没有任何了解,从零开始一步一转载 2016-03-13 17:06:29 · 946 阅读 · 0 评论 -
WCF测试客户端(WcfTestClient)
背景 在建立WCF服务程序的时候,通常需要进行测试,当然测试的方法有很多种,这里介绍微软用来测试服务的GUI工具WcfTestClient.exe,很好用的工具。打开 在VS之外打开测试客户端有两种方法:找到WCF测试客户端的所在路径(VS安装路径\Common7\IDE),我安装的是VS2012,在C:\Program Files(x86)\Micro转载 2017-11-19 15:14:08 · 3658 阅读 · 0 评论 -
WCF系列_分布式事务(上)
1、 事务协议跟WCF相关的事务协议有三个。1.1. Lightweight protocol这是个轻量级的本地事务协议,限制管理在一个AppDomain中的事务。不能跨AppDomain边界传播事务,也不能跨服务边界传播事务。跟其他协议比,Lightweight protocol是最有效率的协议。 1.2. OleTx protocol这个协议可用于跨AppDom转载 2015-03-07 09:35:33 · 842 阅读 · 0 评论 -
WCF 分布式事务-应用
WCF 支持分布式事务,也就是说事务可以跨越服务、进程、机器边界,在多个服务和客户端间存在.那么在WCF中如何使用分布式事务呢?下面我们以一个例子来演示在wcf中使用分布式事务。为了便于测试,我们在建立一个临时表用于测试。表名为MGender.表中有两个字段:GenderCode,char(1),GenderDesc varchar(20).在这个solution中WCFT转载 2015-03-07 09:35:58 · 500 阅读 · 0 评论 -
发布元数据终结点详解
我们需要知道很多东西才能使用微软通信基础架构(WCF)来开发应用程序。尽管这本书已经试着囊括普通开发人员需要了解的WCF所有内容,也还是有一些内容没有讨论到。附录的主要目的是填充这些罅隙。发布元数据终结点我们已。经在第一章”基础”中讨论过元数据。这次讨论对使用元数据暴露服务的配置信息做了一个简要介绍。然而,它并没有详细说明元数据到底是如何被暴露的。稍后我们介绍第四章“绑定”的概念,但是仅限转载 2013-12-09 10:23:39 · 1126 阅读 · 0 评论 -
契约介绍
契约是WCF中很重要的概念。它是用一种与平台无关的标准语法来描述WCF服务的功能。当客户端获取服务端WCF服务的时候,会根据服务端声明的契约生成客户端契约的复本,客户端和服务端通过契约来实现沟通。一个生活中的例子:比如KFC,它是一家快餐品牌。假设我想通过加盟的方式在我家附近开一家KFC快餐店。首先,我们要向KFC加盟代理提交加盟申请,经过资格申查后,和KFC签述加盟协议。然后,我根据转载 2013-12-09 10:39:05 · 1474 阅读 · 0 评论 -
契约Contract(ServiceContract、OperationContract、DataContract、ServiceKnownType和DataMember)
介绍WCF(Windows Communication Foundation) - 契约(Contract):服务契约(ServiceContract),操作契约(OperationContract),数据契约(DataContract),服务已知类型(ServiceKnownType),数据成员(DataMember)。示例1、服务IPersonManager.cs转载 2013-12-09 11:16:38 · 2294 阅读 · 0 评论 -
使用(Service)KnownType标记实现继承、多态特性
1.服务器端:/// /// 实现IExtensibleDataObject接口,表示这个类的派生类也可以序列化 /// IsRequired表示该属性是否需要赋值之后才能序列化 /// /// 注意:此类上没有标记KnownType属性,于是在客户端找不到School的派生类 /// 若是在此类上没有KnownType标记,在契约接口转载 2013-12-09 11:20:54 · 1280 阅读 · 0 评论 -
WCF之 Contract之KnownType契约类型介绍
1 使用场合:在WCF Data Contract中如果存在向下造型的情况时你就会用到KnownTypeAttribute类以保证在反序列化时引擎能知道应该使用哪个具体的类型。主要有以下几种典型的情况:1 发送的数据契约类型是从接收端期望接收的数据契约类型继承的。2 声明的数据类型是接口(注意:集合接口除外,具体请看稍后的WCF Data Contract之集合类型)转载 2013-12-09 11:43:30 · 755 阅读 · 0 评论 -
如何将net.tcp协议寄宿到IIS
1 部署IIS1.1 安装WASIIS原本是不支持非HTTP协议的服务,为了让IIS支持net.tcp,必须先安装WAS(Windows Process Activation Service),即windows进程激活服务。打开控制面板--程序和功能--打开或关闭windows功能,安装WAS,如图:安装完毕后在Services窗口中可以到到如下服务:Windows Proce转载 2013-12-10 16:22:04 · 1222 阅读 · 0 评论 -
.net remoting 配置文件
一.服务器端:RemotingConfiguration.Configure(@" c:...Server.config",true);//.net framework 2.0 加强了通道安全性,增加了一个Configure参数,用于从配置文件读取server端的remoting chanel的配置xml version="1.0"?>configuration>sys转载 2013-12-29 20:08:58 · 757 阅读 · 0 评论 -
WCF系列_分布式事务(下)
1、 WCF分布式事务例子这里也用转账的例子说事。用户在系统A和系统B都有账户,账户间的资金可以互转,系统A的资金减少多少,系统B的相应账户的资金就增加多少。系统A机器上有数据库AccountA,系统B机器上有数据库AccountB,数据库的结构一样,都有一个数据表Account,结构如下:字段数据类型含义deposito转载 2015-03-07 09:37:35 · 1116 阅读 · 0 评论 -
WCF中的InstanceContextMode与SessionMode
SessionMode:设置会话的模式(默认情况下是Allowed)是客户端代理与服务器之间的会话模式,同样也有三种类型:Allowed-允许会话、NotAllowed-不允许会话、Required-要求会话(需要有支持会话的Binding支持,WsHttpBinding、NetTcpBinding等)若要设计一个会话契约,我们建议使用Required 方式,而不是默认值Allowed转载 2012-12-06 20:18:57 · 741 阅读 · 0 评论