所以,消息在整个WCF体系结构中处于一个核心的地位,WCF可以看成是一个消息处理的管道。 尽管消息在整个WCF体系中具有如此重要的意义,可是一般的WCF编程人员,却意识不到消息的存在。...第二,WCF是一个极具可扩展性的通信框架,可以灵活地创建一些自定义WCF扩展(WCF Extension)以实现你所需要的功能。...如同WCF的插件一样,这些自定义的WCF扩展以即插即用的方式参与到WCF整个消息处理流程之中。了解WCF整个消息处理流程是灵活进行WCF扩展的前提。...关于XmlDictionaryReader,在《WCF技术剖析(卷1)》中有详细的介绍,对此不十分了解的读者只需要将其理解为一个特殊的XmlReader就可以了。...1: public class FaultCode 2: { 3: public FaultCode(string name); 4: public FaultCode(string name,
"> 2: 3: http://www.artech.com/ICalculator/DivideCalculationErrorFault...枚举值 含义 VersionMismatch 命名空间或者名称和规定的SOAP规范不匹配 MustUnderstand 目标SOAP结点不能理解并处理mustUnderstand属性为“true”或者“...下的异常:FaultException 在《WCF技术剖析(卷1)》中,我曾经提到过,在整个WCF体系下,数据存在的形态大体可以分为两种:XML和托管对象(Managed Object)。...WCF建立在.NET平台下,利用托管语言(C#和VB.NET)开发人员提供了一个面向对象的编程模型,所以,在WCF体系最顶层的数据形态表现为.NET托管对象。...WCF框架自动为我们作了这么多“幕后”工作,使得开发人员可以完全采用编写一般的.NET应用程序的模式进行异常的处理:在错误的地方抛出相应异常,对于潜在出错的方法调用进行相应的异常捕获和处理。
WCF框架自动为我们作了这么多“幕后”工作,使得开发人员可以完全采用编写一般的.NET应用程序的模式进行异常的处理:在错误的地方抛出相应异常,对于潜在出错的方法调用进行相应的异常捕获和处理。...addressing" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 2: 3: 2: 3: <a:Action s:mustUnderstand...四、FaultException与MessageFault转换的核心:FaultFormatter 在《WCF技术剖析(卷1)》的第5章关于序列化和数据契约的介绍中,我们谈到:WCF借助于一个特殊的对象...严格地说来,FaultFormatter仅仅是WCF一个内部对象,但是对该对象的深刻认识将非常有助于我们有效的理解WCF整个异常处理机制。
第18集 WCF服务应该抛出fault 异常 Throwing fault exceptions from a WCF service 这集的中心意思是WCF服务如果有异常,应该throw出来fault...原因有两个: 1. 一个未经处理的.net 异常会使当前的ServiceClient所在的channel进入faulted状态。然后当前的代理类就不能再用,需要重新create一个。...普通的.net 异常和平台相关,只能被.net的客户端识别,如果客户端是java的,就不好玩了。这个有点像.net remoting。...下面来试验一下效果: 1. host起这个service ? 2. 客户端代码不变,不过可以更新一下服务引用(试了不更新也没问题。) 3. 先试验除数为0的情况 ?...其实前面抛出的FaultReason 和 FaultCode都是可以获取的。
假如您向 Header 元素的某个子元素添加了 “mustUnderstand=”1″,则它可指示处理此头部的接收者必须认可此元素。假如此接收者无法认可此元素,则在处理此头部时必须失效。...语法 soap:mustUnderstand=”0|1″ 实例 Xml代码 <?xml version=“1.0”?...SOAP 的 Fault 元素拥有下列子元素: 供识别故障的代码 可供人阅读的有关故障的说明 有关是谁引发故障的信息... 存留涉及 Body 元素的应用程序专用错误信息 SOAP Fault 代码 在下面定义的 faultcode 值必须用于描述错误时的 faultcode...(带有设置为 “1” 的 mustUnderstand 属性)无法被理解。
WCF内部是如何处理抛出的非FaultException异常的呢?...此外,固定的FaultCode被创建出来作为该MessageFault的Code。...如果IncludeExceptionDetailInFaults开启,WCF则会基于该异常对象创建ExceptionDetail对象,并将该对象作为明细对象创建MessageFault(采用固定FaultCode...; 8: faultContractInfoCollection.Add(new FaultContractInfo("http://schemas.microsoft.com/net...Action: http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher/fault
在《WCF技术剖析(卷1)》的第3章对绑定模型的介绍中我们知道,绑定元素的主要任务是用于对信道管理器(Channel Manager)的创建。...图1 可靠会话信道层模型 WS-RM为可靠消息传输的体现定义了一个可扩展的消息交换模型,而WCF的可靠会话时对该模型具体的实现。...同ASP .NET的会话一样,WCF中的可靠会话实际上也可以看成是一种状态保持机制,它将客户端的服务调用请求关联到RM序列这样一个上下文中。...1 6: 7: 6: 7: 8:
一、填空题 1. 动态网页技术主要分为客户端动态网页技术和 服务器端动态网页技术 两种。...2..NET Framework由两个主要部分组成:公共语言运行库和 .NET Framework类库 。 二、简答题 1. 叙述静态网页技术的概念及其优缺点。...(4)ASP.NET ASP.NET是建立在.NET框架基础之上的Web程序设计框架,它用来创建Web应用程序。...(1)菜单栏和工具栏中包含了所有的操作命令,提供了进行Visual Studio 2010各项功能选择的主要途径。...叙述创建ASP.NET应用程序的一般步骤。 创建ASP.NET应用程序的一般步骤如下: (1)创建Web项目或网站,并添加网页文件。 (2)布局界面,在网页中添加控件,并设置控件属性。
中通过System.Net.Security.ProtectionLevel枚举定义消息的保护级别。...注:在《WCF技术剖析(卷1)》中的第六章有对SOAP 1.2的基本规范有一个大致的介绍,读者也可以直接访问W3C网站下载官方文档。...对应的SOAP报头属性为mustUnderstand Relay:对应的SOAP报头属性为relay,表明该报头是否需要传递到下一个SOAP节点 1: [AttributeUsage(AttributeTargets.Field...在WCF体系中,MessageFormatter负责序列化和反序列化任务(在《WCF技术剖析(卷1)》中的第5章对基于MessageFormatter的序列化机制有详细的介绍):ClientMessageFormatter..."> 2: 3: http://tempuri.org/IOrderManager
《WCF技术剖析(卷1)》自出版近20天以来,得到了园子里的朋友和广大WCF爱好者的一致好评,并被卓越网计算机书店作为首页推荐,在这里对大家的支持表示感谢。...同时我将一直坚持这个博文系列,与大家分享我对WCF一些感悟和学习经验。...在WCF中,定义了一系列类型用于表示SOAP报头。...假设在一个WCF应用中,我们需要在客户端和服务端之间传递一些上下文(Context)的信息,比如当前用户的相关信息。...= “HR/Admiin” 注:在我的文章《[原创]WCF后续之旅(6): 通过WCF Extension实现Context信息的传递》中,我通过WCF扩展的方式实现上面所示的上下文传递。
attribute)上设置System.ServiceModel.MessageContractMemberAttributre.ProtectionLevel属性(property)来完成 System.Net.Security.ProtectionLevel... SOAP标准定义了下列可存在于标头上的属性: Actor/Role(在SOAP1.1中为Actor,在SOAP1.2中为Role)指定要使用给定标头的节点的统一资源标识符 MustUnderstand...指定醋栗标头的节点是否必须理解该标头 Relay指定要将标头中继大下游节点 WCF不会对传入消息的这些属性执行任何处理(MustUnderstand除外) 静态方式将这些属性设置为任何需要的值...在从新版本应用程序向旧版本应用程序发送消息时,系统必需处理额外的标头,同样,反方向操作时系统必需处理缺少的标头 下面的规则适用于标头的版本管理: WCF不反对缺少标头,相应的成员将保留其默认值...WCF还忽略意外的额外标头,此规则的一种例外情况在传入的SOAP消息中,额外标头的MustUnderstand属性设置为true.在这种情况下,由于存在一个无法处理但必需理解的标头,因此会引发异常。
项目中具体用了EF+Ado.net+WCF+WPF+(VB.net啊,坑啊,完全不知道是这个东西),整个解决方案有47个项目,是一个国际化的电话保险销售系统中的一部分。感觉自己是去体验生活的。...这个项目也就是自己学习WCF的原因。 工作方面,等手上的结束了再卖自己一次吧。...第十集 Message Contract in WCF (WCF 的MessageContract特性) 很简单的一集,讲的主要是WCF中的MessageContract特性,具体作用是用来控制WCF...18 ABCDEFGHI1234567 19 20 <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none"
关于绑定、绑定元素和信道之间的关系,在《WCF技术剖析(卷1)》的第3章有详细的介绍。....org/2003/05/soap-envelope"> 2: 3: http://www.artech.com.../transactionformat/OleTransactionsProtocol 4: <OleTxTransaction s:mustUnderstand="1...<CoordinationContext s:mustUnderstand="1" xmlns:mstx="http://schemas.microsoft.com/ws/2006/02/transactions...s:mustUnderstand="1" xmlns:mstx="http://schemas.microsoft.com/ws/2006/02/transactions" xmlns="http:/
",1,2,calculator.Add(1,2)); 19: } 20: } 21: 22: Console.Read...soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> 10: 11: 15: 16: 10: 11: <a:Action s:mustUnderstand...WCF后续之旅: WCF后续之旅(1): WCF是如何通过Binding进行通信的 WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel WCF后续之旅(3
支持对于消息路由,WCF4.0之前的框架没有提供支持,在WCF4.0里又重新加入对于消息路由机制的支持。...消息的例子: http://tempuri.org/IService1/GetData...AddressFilterMode=AddressFilterMode.Prefix)] public class CalculatorService : ISimpleMath, IScientif WCF4.0...WCF4.0新特性体验(6):路由服务Routing Service(下) Getting Started with WCF 4.0 Routing Service WCF Router LoadBalancer
前言 本次记录主要记录三个重要的内容: Message类概述 使用Message类创建消息 读取Message类消息 第一部分--Message类概述 Message类是WCF的基本类。...相反,您需要使用WCF服务 模型构造(如数据协定、消息协定和操作协定)来描述传入消息和传出协定。...在以下情况下可能需要使用Message类: 需要一种替代方式来创建传出的消息内容(例如,从磁盘上的文件直接创建消息),而不是序列化.NET Framework对象。 ...需要一种替代方式来使用传入的消息内容(例如,需要将XSLT转换应用于原始XML内容),而不是反序列化为.NET Framework对象。 ...其中一个最简单的重载采用一个用于描述错误的MessageFault对象作为参数 public Message GetDataFault() { FaultCode
Vs2010正式版据说4月12号就要发行,是时候摆弄一下它了 新建web application后,最直观的一个变化就在于web.config变干净了: 只...
Request request); } [MessageContract] public class Request { [MessageHeader(MustUnderstand...= true)] public string FileName { get; set; } [MessageBodyMember(Order = 1)]...Request request); } [MessageContract] public class Request { [MessageHeader(MustUnderstand...= true)] public string FileName { get; set; } [MessageBodyMember(Order = 1)]...参数设定超时时间,超时时间默认为1分钟,上述配置中采用了默认超时时间。
至于WCF框架是否有能力对事物进行流转,按照怎样的协议进行流转,则是通过绑定实现的,现在我们首先看看怎样的绑定具有事务流转的能力。...一、绑定对事务流转的支持 《WCF技术剖析(卷1)》中的第3章对绑定的本质进行了深层次的剖析,阅读过本章的读者应该知道:绑定是一系列绑定元素(BindingElement)的有序组合,相应的绑定元素对消息进行相应的处理以实现特定的目标...消息交换是WCF进行通信的唯一手段,任何需要传输的数据最终都需要最为消息的一部分。...图3 客户端端和服务端采用不同的事务处理协议导致的异常(Mandatory) 倘若接收到的消息中存在事务报头,并且报头的MustUnderstand属性为True或者1,对于Allowed选项来说,如果采用非事务绑定...但是,如果MustUnderstand属性为False或者0,事务报头会被忽略。
第20集 通过实现IErrorHandler接口来统一处理WCF里的异常 Centralized exception handling in WCF by implementing IErrorHandler...前面几集讲了服务端遇到普通的 .net exception时候,要转换城Soap Fault,用fault Exception 或 FaultException来处理。...WCF中,我们可以用IErrorHandler 接口来实现类似的功能。 总共有3步: 1. 创建一个实现了IErrorHandler 接口的类。...); //} catch(Exception ex) { // throw new FaultException(ex.Message, new FaultCode...如果是在WCF的实际项目中应该还是比较好用的吧。 Thank you。
领取专属 10元无门槛券
手把手带您无忧上云