-----------版本控制策略:必须支持向后兼容:----就是当服务端发生改变,但客户端未更新会不会发生错误: 一旦契约发布,若要契约发生变化,如何不影响客户端使用: ----wsdl:契约: 服务契约的变化--对客户端的影响: 操作签名的增加 (无影响,默认缺省值) 操作签名的删除(无影响,默认被忽略掉) 增加新的操作(无影响,客户端不知道) 删除操作.修改参数类型.修改返回值(报错) --- 数据契约的变化    对客户端的影响 添加non-required   无影响: 添加新的req…
06 WCF契约服务行为和异常处理 一.WCF契约服务行为 [1] 服务行为可以修改和控制WCF服务的运行特性. 在实现了WCF服务契约后,可以修改服务的很多执行特性. 这些行为(或者特性)是通过配置运行时属性或者通过自定义行为来控制的. [2]分类 WCF的行为分为两类: 服务行为(Service Behavior) 操作行为(Operation Behavior) [3]应用的位置 应用在实现接口的类上,而不是接口上. [ServiceBehavior] public class Servi…
1.wcf契约分为:服务契约,操作契约,消息契约.数据契约 -------------------服务契约: [ServiceContract( Name = "name_IUser", Namespace = "http://localhost:3232/wpf/aa")] 配置元数据交换 <endpoint address="mex" binding="mexHttpBinding"  contract="…
我们在使用WCF时,对其制定各种各样的规则,就叫做WCF契约.任何一个分布式的应用程序在传递消息的时候都需要实现制定一个规则. WCF配置文件相关操作技巧解析 全方位解读WCF Address配置文件 设置WCF服务配置信息相关经验分享 三种WCF消息交换常见模式解读 WCF分布式事务部署过程解密 任何一个分布式应用程序,它之所以能够互相传递消息,都是事先制定好数据交换规则的,这个规则正是交换数据的双方(比如服务器端和客户端)能彼此理解对方的依据,WCF作为分布式开发技术的一种,同样具有这样一种…
契约就是双方或多方就某个问题达成的一种的共识  服务提供者通过契约的形式将服务公布出来 服务消费者根据契约来消费 这样通过契约这个中间者就可以规范服务提供的内容 而服务消费者也可以根据契约来使用服务端提供的服务 消费者不需要关心服务内部的功能是如何实现的 它只需要根据契约提供的信息来调用服务即可 web服务描述语言 web服务描述语言 简称WSDL(Web Service Description Language) 如果希望服务契约被基于不同平台的客户端所理解 就应该使用一种与平台无关的标准对服…
首先以一个简单的例子演示一下远程调用发生异常的结果: 服务器端代码如下: [ServiceContract] public interface IService1 { [OperationContract] void ErrorTest(); } public class Service1 : IService1 { public void ErrorTest() { throw new InvalidOperationException("异常测试"); } 该服务非常简单,直接抛一…
本篇博文只是简单说下WCF中的契约的种类.作用以及一些简单的代码示例.在WCF中契约分为服务契约.数据契约和消息契约.下面对这几种契约进行简单的介绍. 服务契约 服务契约描述了暴露给外部的类型(接口或类).服务所支持的操作.使用的消息交换模式和消息的格式.每个WCF服务必须实现至少一个服务契约.使用服务契约必须要引用命名空间System.ServiceModel .服务契约中常用到的三个特性: ServiceContractAttribute 该特性定义在类或接口上,用来描述一个相关操作的集合.…
http://imysql.com/2014/07/31/mysql-faq-exception-replication-with-gtid.shtml 昨天处理了一个MySQL 5.6版本下开启GTID模式复制异常案例,MASTER上的任何操作都无法在SLAVE上应用,SLAVE的RELAY LOG里有记录,但SLAVE的BINLOG却找不到蛛丝马迹.由于开启了GTID,所以排查起来也简单,只需要在SLAVE上把RELAY LOG和BINLOG分别解析成文本文件,再直接搜索MASTER的UUI…
什么是契约? 从SOA概念上讲,契约属于服务公开接口的一部分.一个服务契约,定义了服务端公开的服务方法,使用传输协议,可访问地址,传输的消息格式等内容.换句话说:契约描述了该服务的功能和作用,它告诉SOA系统中的其他节点这个服务是干什么的 契约的分类 1.服务契约:客户端能够执行的操作 A.ServiceContract 声明一个服务的操作 B.OperationContract:用于类中的方法或借口上 2.数据契约:服务交互的数据类型.比如:string类型 3.消息契约:允许服务和消息直接交…
1.JDK7以前的流异常try-catch处理 public static void main(String[] args) { FileInputStream fis = null; try { fis = new FileInputStream("D:\\1.txt"); int len; while ((len = fis.read()) != -1){ System.out.println((char) len); } } catch (IOException e) { e.p…
[WCF--初入江湖]目录 [WCF--初入江湖]01 WCF编程概述 [WCF--初入江湖]02 WCF契约 [WCF--初入江湖]03 配置服务 [WCF--初入江湖]04 WCF通信模式 [WCF--初入江湖]05 WCF异步编程 [WCF--初入江湖]06 WCF契约服务行为和异常处理 [WCF--初入江湖]07 分布式事务 [WCF--初入江湖]08 并发与实例模式 [WCF--初入江湖]09 可靠会话与可靠性消息 [WCF--初入江湖]10 序列化和传输大型数据流 [WCF--初入江…
今天学习WCF分布式开发步步为赢系列的15节:错误契约(FaultContract)与异常处理(ExceptionHandle).本节内容作为WCF分布式开发的一个重要知识点,无论在学习还是项目中都应该有所了解.此前也和多位学习爱好者讨论过WCF异常处理的相关知识.这里就系统整理一下,共大家参考.同时也是对<WCF分布式开发步步为赢>系列文章的完善和补充.   本节主要涉及的知识点就是:[1].NET异常处理[2]WCF异常处理[3]错误契约[4]WCF异常处理扩展[5]示例代码分析,最后是[…
原文:WCF技术剖析之十六:数据契约的等效性和版本控制 数据契约是对用于交换的数据结构的描述,是数据序列化和反序列化的依据.在一个WCF应用中,客户端和服务端必须通过等效的数据契约方能进行有效的数据交换.随着时间的推移,不可避免地,我们会面临着数据契约版本的变化,比如数据成员的添加和删除.成员名称或者命名空间的修正等,如何避免数据契约这种版本的变化对客户端现有程序造成影响,就是本节着重要讨论的问题. 一.数据契约的等效性 数据契约就是采用一种厂商中立.平台无关的形式(XSD)定义了数据的结构,而…
什么是契约呢?在使用WCF时,对其制定各种各样的规则,就叫做WCF契约.任何一个分布式的应用程序在传递消息的时候都需要实现制定一个规则. 任何一个分布式应用程序,它之所以能够互相传递消息,都是事先制定好数据交换规则的,这个规则正是交换数据的双方(比如服务器端和客户端) 能彼此理解对方的依据,WCF作为分布式开发技术的一种,同样具有这样一种特性.而在WCF中制定的的规则就被称之为契约(Contract),它是WCF的消息标准, 是任何一个wcf程序不可或缺的一部分. 契约可以分为四种:服务契约.数…
一.契约的基本概念 契约是消息参与者之间的约定.在SOA架构中,契约提供了服务通信所必需的元数据.契约用来定义数据类型,操作,消息交换模式和消息交换使用的传输协议.契约通常是在标准化平台中使用与编程语言无关的XML格式发布的.这样做的好处是:允许契约涉及的各方都能够使用和理解契约.在WCF中,服务元数据通常是用WSDL(Web服务描述语言)和XSD(扩展样式定义)文档格式来描述的.在WCF程序中,契约不一定是WSDL和XSD的文档集合,而可能是.NET类型定义的集合,如有需要就可以转化为WSDL…
上一节我们学习了WCF分布式开发步步为赢(5)服务契约与操作重载部分.今天我们来继续学习WCF服务契约继承和服务分解设计相关的知识点.WCF服务契约继承有何优势和缺点?实际项目里契约设计有什么原则和依据?面向对象的设计经验有何值得借鉴的地方?这里我们会一一给出详细的介绍.本文首先介绍的是WCF服务中契约继承的一些概念.例子代码分析,其次来讲解服务契约的设计问题.首先介绍的也是进行服务设计的必要性,服务设计的原则,示例代码分析.最后是全文的总结部分.结构如下:[1]OO面向对象设计原则,[2]服务…
WCF中的契约包括4种 数据契约 DataContract ->DataMember 服务契约 ServiceContract-> OperactionContract 消息契约 MessageContract 异常契约 FaultContract 用于定义服务操作的服务WCF契约:Service Contract 这种级别的契约又包括两种:ServiceContract和OperationContract ServiceContract用于类或者结构上,用于指示WCF此类或者结构能够被远程调…
我定义的WCF契约里,有一个类,里面的属性,有一个因为只读,所以只写了个get.结果客户端就报错. [DataContract] public class UserItem { public UserItem(int Id, string Name, bool IsActived) { this.Id = Id; this.Name = Name; this.IsActived = IsActived; } [DataMember] public int Id { get; set; } [Da…
终结点与服务寄宿 由于最近可能要使用WCF做开发,开始重读蒋金楠的<WCF全面解析>,并整理个人学习WCF的笔记. 蒋金楠的书是我的第一本WCF入门书,虽说硬着头皮啃下来了,但是原理内容太多太多,没有长期的经验是无法掌握的,而且这本书写得太过于偏重原理,并不是一本稍微看看就能速成并实现工作需求的书. 于是这篇文章的目的就是把原理和类结构分析给干掉(毕竟书上都有,我何必抄书?),把一些关键话语和配置方式摘出来,以便日后一旦遇到问题有个速查的手册,也相当于为这本书做了一个索引. 不过不得不说的是,…
在上一篇Log4net入门(ASP.NET MVC 5篇)中,我们讲述了如何在ASP.NET MVC 5项目中使用log4net.在这一篇中,我们将讲述如何在WCF应用中使用log4net,为了讲述这个过程,我们将创建三个项目:WCF服务库项目.WCF服务应用程序和客户端应用程序.WCF服务库项目主要用于编写我们的WCF契约及服务,WCF服务应用程序主要用于将我们的WCF服务库托管到IIS上,客户端应用程序主要目的就是调用我们托管到IIS上的WCF服务. 一.项目创建 1.空白解决方案的创建:启…
学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太少,直到现在,我也认为自己不过是初窥WCF的门径而已. 学以致用”,如果仅仅是希望能够在项目中合理地应用WCF,那么对于程序员而言,可以有两种选择,一种是“知其然而不知其所以然”,只要掌握了WCF的基础知识,那么对于一般的应用就足够了.要做到这一点就很容易了,微软秉承了一贯的方式,将WCF这门技术优雅地呈现给…
原文:<WCF技术剖析>博文系列汇总[持续更新中] 近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析(卷1)>的写作,一直无暇管理自己的Blog.在<WCF技术剖析(卷1)>写作期间,对WCF又有了新的感悟,为此以书名开始本人的第三个WCF系列.本系列的目的在于对<WCF技术剖析>的补充,会对书中的一些内容进行展开讲述,同时会囊括很多由于篇幅的原因忍痛割弃的内容. [第1篇] 通过一个ASP.NET程序模拟WCF基础架构 本系列的第一篇,我将会对WC…
什么是WCF WCF的全称是:Windows Communication Foundation.从本质上来说,它是一套软件开发包,是微软公司推出的符合SOA思想的技术框架.WCF为程序员提供了丰富的功能,其中包括:托管.服务实例管理.异步.安全.事务管理.离线队列等.并且WCF对产业中的标准协议进行了封装和定义,它把程序员从繁琐的通信.格式编码中解放出来,使得程序员能够专注于业务逻辑的实现.同时,WCF统一了微软公司之前推出的多种分布式技术,其中包括:1.    Web服务和WSE.2.    …
原文链接:http://www.cr173.com/html/19026_1.html 国外的一篇文章:Sharing DataContracts between WCF Services 文中提到的AutoMapper的两个相关链接:AutoMapper完成Dto与Model的转换.AutoMapper使用笔记 调用过WCF服务的同学可能都会遇到这样的问题,同一个实体类型,不同的服务Visual Studio生成了不同的版本,例如Service1.User和Service2.User,对于C#…
在Windows Communication Foundation (WCF)中,为了阻止服务的实现细节从服务的安全边界泄露,未知的异常不应该被发送至客服端.在WCF配置中将<serviceDebug>配置节的includeExceptionDetailInFaults属性的值显式设置为false后(或干脆不设置,因为False是默认值),即可达到此目的. 备注: includeExceptionDetailInFaults配置只用于未知的或未被处理的异常.对已知的异常(标有FaultCont…
1.WCF 契约 ICalculator.cs using System.ServiceModel; namespace Contracts { [ServiceContract] public interface ICalculator { /// <summary> /// 加法 /// </summary> /// <param name="x"></param> /// <param name="y"&g…
调用过WCF服务的同学可能都会遇到这样的问题,同一个实体类型,不同的服务Visual Studio生成了不同的版本,例如Service1.User和Service2.User,对于C#来说,这是两个不同的类型,Service1获得的User是放不到Service2服务里去的.手动的属性赋值来转换显然是不可取的,所以就共享类型了. 方法1,服务端和客户端共享数据契约程序集. 这个方法最常用,也是大家最熟悉的方法,把WCF的数据契约放在一个独立类库里,服务端,客户端都引用这个程序集,然后在生成WCF…
调用过WCF服务的同学可能都会遇到这样的问题,同一个实体类型,不同的服务Visual Studio生成了不同的版本,例如Service1.User和Service2.User,对于C#来说,这是两个不同的类型,Service1获得的User是放不到Service2服务里去的.手动的属性赋值来转换显然是不可取的,所以就共享类型了. 方法1,服务端和客户端共享数据契约程序集. 这个方法最常用,也是大家最熟悉的方法,把WCF的数据契约放在一个独立类库里,服务端,客户端都引用这个程序集,然后在生成WCF…
最近找工作,面试时经常被问懂不懂WCF.不少招聘高级.NET工程师的要求上都 写着有WCF开发经验的优先考虑.我对于WCF仅仅是通过看一些教学视频这种山寨学习法了解一些.现在要下决心好好学习一下WCF了,所以在网上找了一本 名为<WCF揭秘>的电子书,看目录好像还不错,网上评论一般,但我手头找不到其他WCF电子书籍了,就是它吧. 言归正传,现在就开始吧! WSDL WSDL(Web Services Description Language,Web服务描述语言)为将JAVA开发的应用程序与用C…
第1章 wcf简介 soa体现的是一种对关注点进行分解的思想,与技术无关 soa的基本思想: a.服务自治  独立部署,不依赖其他 b.依赖于开放的标准  采用xml,xsd,及wsdl作为服务描述的“语言” c.跨平台  java平台下的应用能够调用.net平台暴露出来的wcf服务 d.可组合的服务 原子服务,聚合型服务 e.服务的复用  场景无关性 f.松耦合  通过契约 ------------------------------------------------------------…