首页
学习
活动
专区
圈层
工具
发布

WCF技术剖析之十七:消息(Message)详解(上篇)

所以,消息在整个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,

3K100

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理

"> 2: 3: mustUnderstand="1">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应用程序的模式进行异常的处理:在错误的地方抛出相应异常,对于潜在出错的方法调用进行相应的异常捕获和处理。

1.5K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理

    WCF框架自动为我们作了这么多“幕后”工作,使得开发人员可以完全采用编写一般的.NET应用程序的模式进行异常的处理:在错误的地方抛出相应异常,对于潜在出错的方法调用进行相应的异常捕获和处理。...addressing" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 2: 3: mustUnderstand...addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"> 2: 3: mustUnderstand...四、FaultException与MessageFault转换的核心:FaultFormatter 在《WCF技术剖析(卷1)》的第5章关于序列化和数据契约的介绍中,我们谈到:WCF借助于一个特殊的对象...严格地说来,FaultFormatter仅仅是WCF一个内部对象,但是对该对象的深刻认识将非常有助于我们有效的理解WCF整个异常处理机制。

    1.7K110

    WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化

    中通过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: mustUnderstand="1">http://tempuri.org/IOrderManager

    1.9K60

    第1章 ASP.NET4.0开发技术概述

    一、填空题 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)布局界面,在网页中添加控件,并设置控件属性。

    1.8K20

    在“消息”中 指定的 Action 必须与协定中的 ReplyAction 匹配,否则操作协定必须指定 ReplyAction=*解决方法

    [WCF][原创]在“消息”中 指定的 Action 必须与协定中的 ReplyAction 匹配,否则操作协定必须指定 ReplyAction="*"解决方法 刚学了WCF跟着教程做,客户端那边始终报错如下...xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> faultcode...xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault...faultcode> 操作“Invoke”的传出回复消息指定了 Action=“http://tempuri.org/IRegisterService...System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(

    11900

    XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览

    mustUnderstand 属性SOAP mustUnderstand 属性可用于指示接收者是否必须处理头部条目。...如果将 mustUnderstand="1" 添加到 Header 元素的子元素中,表示处理 Header 的接收者必须识别该元素。如果接收者不识别该元素,则在处理 Header 时将失败。...语法soap:mustUnderstand="0|1"actor 属性SOAP 消息可能通过沿着消息路径传递不同的端点从发送方传递到接收方。...Body 元素相关的应用程序特定错误信息SOAP 错误代码当描述错误时,faultcode 元素中必须使用以下定义的 faultcode 值:错误描述VersionMismatch在 SOAP Envelope...元素的命名空间中找到无效的命名空间MustUnderstandHeader 元素的立即子元素,mustUnderstand 属性设置为 "1",未被理解Client消息格式不正确或包含不正确的信息Server

    1.6K11

    WCF技术剖析之十七:消息(Message)详解(下篇)

    《WCF技术剖析(卷1)》自出版近20天以来,得到了园子里的朋友和广大WCF爱好者的一致好评,并被卓越网计算机书店作为首页推荐,在这里对大家的支持表示感谢。...同时我将一直坚持这个博文系列,与大家分享我对WCF一些感悟和学习经验。...在WCF中,定义了一系列类型用于表示SOAP报头。...假设在一个WCF应用中,我们需要在客户端和服务端之间传递一些上下文(Context)的信息,比如当前用户的相关信息。...= “HR/Admiin” 注:在我的文章《[原创]WCF后续之旅(6): 通过WCF Extension实现Context信息的传递》中,我通过WCF扩展的方式实现上面所示的上下文传递。

    1.4K60

    菜菜从零学习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.在这种情况下,由于存在一个无法处理但必需理解的标头,因此会引发异常。

    3.3K41

    菜菜从零学习WCF八(Message类)

    前言 本次记录主要记录三个重要的内容: Message类概述 使用Message类创建消息 读取Message类消息 第一部分--Message类概述 Message类是WCF的基本类。...相反,您需要使用WCF服务 模型构造(如数据协定、消息协定和操作协定)来描述传入消息和传出协定。...在以下情况下可能需要使用Message类:     需要一种替代方式来创建传出的消息内容(例如,从磁盘上的文件直接创建消息),而不是序列化.NET Framework对象。     ...需要一种替代方式来使用传入的消息内容(例如,需要将XSLT转换应用于原始XML内容),而不是反序列化为.NET  Framework对象。     ...其中一个最简单的重载采用一个用于描述错误的MessageFault对象作为参数 public Message GetDataFault() { FaultCode

    1.2K30

    WCF技术剖析之三十一: WCF事务编程

    至于WCF框架是否有能力对事物进行流转,按照怎样的协议进行流转,则是通过绑定实现的,现在我们首先看看怎样的绑定具有事务流转的能力。...一、绑定对事务流转的支持 《WCF技术剖析(卷1)》中的第3章对绑定的本质进行了深层次的剖析,阅读过本章的读者应该知道:绑定是一系列绑定元素(BindingElement)的有序组合,相应的绑定元素对消息进行相应的处理以实现特定的目标...消息交换是WCF进行通信的唯一手段,任何需要传输的数据最终都需要最为消息的一部分。...图3 客户端端和服务端采用不同的事务处理协议导致的异常(Mandatory) 倘若接收到的消息中存在事务报头,并且报头的MustUnderstand属性为True或者1,对于Allowed选项来说,如果采用非事务绑定...但是,如果MustUnderstand属性为False或者0,事务报头会被忽略。

    95060
    领券