1、使用WCF单项模式须知 (1)、WCF服务端接受客户端的请求,但是不会对客户端进行回复 (2)、使用单项模式的服务端接口,不能包含ref或者out类型的参数,至于为什么,请参考C# ref与out关键字解析...(3)、使用单项模式的服务端接口没有返回值,返回类型只能为void (4)、通过设置OperationContract契约的IsOneWay=True可以将满足要求的方法设置为这种消息交换模式 2、代码实例...宿主,这里因为本地以及有WCF宿主了,所以这里就不建了,不知道怎么建的话,参考WCF系列教程之初识WCF,所以将服务通过配置配置文件发布到WCF宿主中 消息。 ? iii、通过Vs提供的WCF测试工具 ?...,来对WCF服务进行测试,输入服务地址 ? ,点击调用 ? ,瞬间服务端返回 ? 我们发现只有请求消息,没有返回的消息,说明服务器并没有对此作出任何反应。
无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message。...在我们对Web Service和WCF进行深入学习的时候,借助一些Soap Trace 工具对Soap Message进行深入剖析是非常有必要的。...在这些工具之中,我觉得最好用的就是Microsoft Soap Toolkit中的Soap Trace Utility和tcpTrace。我们今天就来讲讲如何在WCF中使用tcpTrace这个工具。...对于WCF来说,如果Client要访问Service,一般情况下交互的只有Client和Service,Soap Message直接从Client到Service。...而我们今天所介绍的通过tcpTrace来获取Soap的情况下,tcpTrace实际是就是充当了Intermediary Node的角色。 我们现在就来介绍如果使用tcpTrace。
1、使用WCF双工通讯须知 (1)、客户端调用WCF服务端需要等待服务端的返回,即使返回类型是void (2)、相比Duplex来讲,这种模式强调的是客户端的被动接受,也就是说客户端接受到响应后,消息交换就结束了...(4)、它是缺省的消息交换模式,设置OperationContract便可以设置为此种消息交换模式
SOAP是一个轻量级的有线传输协议,定义了一系列传输交换机制,用来传输在应用层协议上使用的方法调用。SOAP实际上没有定义从一点发送消息到另一点的机制,即使在它的规范中它引用了一个虚拟的消息路径机制。...{ get; } } 这个就是我们看到的WCF内部对于SOAP消息寻址规范支持的类型,WCF框架会使用这个类型来控制消息使用的SOAP消息以及WS-Addressing 的版本。...物理地址:物理地址(“Via”)是 WCF侦听消息的实际传输特定网络地址。 WCF通道基础结构针对的是物理地址,因为物理地址负责使用特定的传输协议在特定的位置ListenURI接收传入的消息。...MessageFilter实例负责消息的调度。前面的SOAP中的Action值,是一个消息调度的方式。 当传入消息时,WCF使用消息过滤器器确定匹配端点。我们也可以自己定义消息过滤器器类型。...)] public class CalculatorService : ISimpleMath, IScientif WCF4.0实现了一个路由服务类型RoutingService,它可以支持多种消息交换模式的消息路由场景
在基于SOAP的消息交换过程中,异常最终通过Fault消息承载,所以很自然地,接下来的介绍从SOAP Fault说起。...一、 从SOAP Fault说起(基于SOAP 1.2) 服务调用的最终实现通过消息交换完成,WCF本质上可以看成是一个消息处理的框架。...由于异常在消息交换中通过Fault消息承载,所以很多必要对SOAP Fault的相关规范作一下重申,至于SOAP的其他相关的内容,在这里就不再作重复的介绍了。...而最终服务调用体现在消息的交换上,消息时基于XML的(除了少部分非XML的消息,比如JSON)。从数据转化的角度上讲,WCF起到了一个将数据从这两种形态数据进行转化和适配的作用。...到此为止,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常。
WCF是.Net框架中的技术,用来创建面向服务的应用程序,交换不同通信方案里的消息,以及执行服务操作生成的工作流。WCF应用程序由三部分组成 - WCF服务,WCF服务主机和WCF服务客户端。...消息层次安全性:在数据处理时就加密,例如使用数字签名,散列或是使用**加密法等。...而建立在WS-Coordination和WS- AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。...即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。 4:可扩展性。 WCF提供可扩展性,可以支持出新的web服务标准。...异常处理:在WCF中,未处理的异常都是在一个更好的方式通过使用FaultContract处理,并没有得到Web服务SOAP(简单对象访问协议)故障返回给客户端等。
1、使用WCF请求与答复模式须知 (1)、客户端调用WCF服务端需要等待服务端的返回,即使返回类型是void (2)、相比Duplex来讲,这种模式强调的是客户端的被动接受,也就是说客户端接受到响应后,...消息交换就结束了 (3)、在这种模式下,服务端永远是服务端,客户端就是客户端,职责分明。...(4)、它是缺省的消息交换模式,设置OperationContract便可以设置为此种消息交换模式 2、代码示例 服务层接口IReqReplyService.cs代码如下: using System;...Console.WriteLine("方法调用前时间:" + System.DateTime.Now); Console.WriteLine(proxy.SayHello("WCF...我们可以看到服务器响应的时间刚好为6s,正好是线程休眠的时间,并且客户端返回了信息Hello WCF.
TCP是一个面向流的协议,高层的协议不是面向流的,需要自己来设计消息的大小,开始和结束点,这就是消息的帧格式。...在WCF就是采用消息帧格式,支持TCP 传输和SOAP消息,WCF没有提供对UDP的默认支持,UDP的传输就需要自己去实现了。...Nicholas Allen在博客中写了一个系列的文章来说明WCF的消息帧格式: Message Framing, Part 1 Message Framing, Part 2 Message Framing
四、 信道形状(Channel Shape) 由于WCF在进行Messaging的时候可以采用不同的消息交换模式(MEP-Message Exchange Pattern)。...我们常见的Channel Shape有以下四种: Datagram:数据报方式,采用One-way的消息交换模式。...Request/Reply:请求/恢复方式,采用传统的Request/Reply 消息交换模式。 Duplex:双向通信,采用Duplex消息交换模式。...P2P :点对点方式通信, 采用Duplex消息交换模式。 由于在不同的MEP中,消息交互双方Channel在整个消息交换过程所扮演的角色时不同的。...:创建一个简单的SOAP Message拦截、转发工具[下篇] WCF后续之旅(14):TCP端口共享 WCF后续之旅(15): 逻辑地址和物理地址 WCF后续之旅(16): 消息是如何分发到Endpoint
先来了解一下基本WCF术语 第一创建WCF服务协定 消息 消息是一个独立的数据单元,它可能由几个部分组成,包括消息正文和消息头。...--缺点:如果执行操作需要很长的时间,则会降低客户端性能和响应力 --优点:响应消息中可返回SOAP错误,这表名可能在通信或处理中发生了一些与服务有关的错误状况 单向模式 如果WCF服务应用程序的客户端不必等待操作完成...,并且不处理SOAP错误,则该操作可以指定单向消息模式。 ...此种类型的消息交换模式支持从客户端到服务应用程序的类似于事件的行为。 若要为返回Void的操作指定单向消息交换,请将IsOneWay属性设置为true,默认为false. ...处理用启用操作功能的基础SOAP消息的定义,并处理数据类型到消息正文的序列化和从消息正文进行反序列化,数据类型一旦序列化,您就无需在设计操作时考虑基础消息交换基础结构 可以使用其他序列化机制,标准Iserializable
转载于:https://my.oschina.net/u/2277088/blog/3024342
对于希望对WCF的消息交换有一个深层次了解的读者来说,tcpTracer绝对是一个不可多得好工具。...从消息交换的角度来看,服务的调用者调用者将请求消息直接发送到服务端,计算结果也以回复消息的形式直接返回到服务的调用者。...注:对于消息发送方来说,SOAP消息的To报头对应的地址由发送端的终结点地址(逻辑地址)决定。...其中显示在上面文本框中的请求消息的内容如下,可以看出是一个HttpRequest消息,SOAP消息作为HttpRequest消息的主体(body)。...:创建一个简单的SOAP Message拦截、转发工具[下篇] WCF后续之旅(14):TCP端口共享 WCF后续之旅(15): 逻辑地址和物理地址 WCF后续之旅(16): 消息是如何分发到Endpoint
地址决定了服务的位置并实现相应的寻址机制,契约描述了消息交换模式及消息的结构,绑定则通过创建信道栈实现对消息的编码、传输和基于某些特殊的功能对详细消息进行相应的处理。...和之前的章节提到Message用于传播SOAP消息之外,对于异常信息,WCF通过FaultMessage对象来传播,其对象包括如下属性:Code,表示错误代码;Reason,表示错误原因;Node,表示导致出错的...SOAP节点;Role表示SOAP节点对应的角色;Detail表示错误的详细描述。...WCF并不直接进行FaultException异常和错误消息之间的交换,其通过一个System.ServiceModel.Channels.MessageFault对象来完成,此外消息的格式化通过FaultFormatter...由于EHAB的继承使用并不方便,因此就不进行介绍了。 参考资料: [1]蒋金楠. WCF全面解析[M]. 上海:电子工业出版社, 2012.
对于一个消息交换的过程,很多人只会关注message的最初的发送端和最终的接收端。...比如,我们可以创建路由器(Router)进行消息的转发,甚至是Load Balance;可以创建一个消息拦截器(Interceptor)获取request或者response message,并进行Audit...一、创建一个简单的WCF应用 由于我们将要创建的message interceptor需要应用到具体的WCF应用中进行工作和检验,我们需要首先创建一个简单的WCF应用。...这个工具本质是一个WCF service(我们姑且称它为Intercept service),在该service中定义一个operation进行消息的拦截、处理、转发的功能(如下图所示)。...我们先来讲将第一个特征,之所以我们要使用untyped message作为参数和返回值,是因为我们要将Intercept打造成一个“万能”的操作:能够处理任何请求和返回。
认真阅读过《WCF技术剖析(卷1)》的读者相对会对这三要素的本质有一个深刻的认识:地址决定了服务的位置并实现相应的寻址机制;契约描述了消息交换模式(Message Exchange Pattern: MEP...服务的消费者通过获取服务端发布的元数据,并在此基础上重建终结点,才能取保请求:消息被发送到准确的目标地址;采用服务端期望的消息交换模式和并生成服务端能够识别的消息结构;使用相匹配的消息编码方式以确保服务端能够对接收到的消息进行正常解码...;使用一致的传输协议以实现消息的正常传输;对消息进行与服务端一致性的处理以确保对事务、可靠传输、消息安全等协议的实现。...WCF支持三种典型的消息交换模式:单工(One-way)请求回复(Request-Reply)和双工(Duplex)。...在这里,我们很有必要强调“终结点”,本节我们提到的终结点在大部分场景中都是指与技术无关的、用于进行消息交换的“端口”。而我们WCF中提到的终结点,可以看成是这样一个通用的终结点在具技术平台中的实现。
消息交换是WCF进行通信的唯一手段,通过方法调用(Method Call)形式体现的服务访问需要转化成具体的消息,并通过相应的编码(Encoding)才能通过传输通道发送到服务端;服务操作执行的结果也只能以消息的形式才能被正常地返回到客户端...所以,消息在整个WCF体系结构中处于一个核心的地位,WCF可以看成是一个消息处理的管道。 尽管消息在整个WCF体系中具有如此重要的意义,可是一般的WCF编程人员,却意识不到消息的存在。...所以对于一般的编程人员来说,他们面对的是接口,却不知道服务契约对于服务的描述;面对的是数据类型,却不知道数据契约对序列化的作用;面对的是方法调用和返回值的获取,却不了解底层消息交换的过程。...如同WCF的插件一样,这些自定义的WCF扩展以即插即用的方式参与到WCF整个消息处理流程之中。了解WCF整个消息处理流程是灵活进行WCF扩展的前提。...如果你使用基于SOAP 1.1和SOAP 1.2的命名空间(SOAP 1.1为http://schemas. xmlsoap.org/soap/envelope/ ;SOAP 1.2为http://www.w3
CommunicationObject与DefaultCommunicationTimeouts 3.3.2 IChannel和ChannelBase 3.3.3 消息交换模式与信道形状...4.1.1 抽象、接口与服务契约 4.1.2 元数据与服务契约 139 4.1.3 WSDL、XSD与服务契约 4.1.4 消息交换与服务契约...OperationContractAttribute 4.2.2 为终结点指定契约 4.2.3 服务契约的继承 4.2.3 操作重载与操作选择 4.3 消息交换模式...消息契约与消息编码 (Message, Message Contract and Message Encoding) 6.1 SOAP与WS-Addressing 6.1.1... SOAP (基于SOAP 1.2标准) 6.1.2 WS-Addressing(基于WS-Addressing 1.0) 6.2 消息(Message)
双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。...双工消息交换模式使服务端回调(Callback)客户端操作成为可能。本文测试Mono 3.0.2/.NET 4对双工(Duplex)模式的WCF支持。...借助OperationContext,我们可以在服务端或者客户端获取或设置一些上下文,比如在客户端可以通过它为出栈消息(outgoing message)添加SOAP报头,以及HTTP报头(比如Cookie...在服务端,则可以通过OperationContex获取在客户端设置的SOAP报头和HTTP报头。...配置里头使用localhost代替具体的ip时候出现无法连接的情况。 ?
服务是指可以通过消息与之进行交互的一段代码。 服务是被动的。它们等待传入消息之后才开始工作。客户端是发起者,客户端将消息发送给服务来请求工作。 使用WCF,就可以实现其所有应用程序间的通信。...WCF可使用Web服务进行通信,还可以对WCF进行配置和扩展,以便与使用并非基于SOAP的消息的Web服务进行通信。 WCF是提供统一的,可用于建立安全、可靠的面向服务的应用的高效开发平台。...数据契约:服务中的参数; 消息契约:使用SOAP协议特定的消息部分; 服务契约:服务中的方法; 策略与绑定:策略设置安全或其他条件,绑定指定传输方式与编码。...处理事务; 调度行为:控制WCF处理消息的方式; 消息传递 消息传递层:说明数据的交换格式和传输模式。...WCF和Webservice的区别 微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。
加密后的会话密钥被发送给服务端,服务端使用自己的私钥采用相对应的算法进行机密得到该会话密钥。...WS-Security提供了关于SOAP安全交换的三个主要机制:如何将安全令牌作为消息的一部分进行传输,如何检测接收到的消息是否和原始发送的一致,以及如何确保消息的真实内容仅对真正的接收者可见。...WS-Trust WS-Trust通过定义了一系列SOAP扩展,旨在消息交换相关方之间建立一个信任的关系(Trust Relationship)。在绝大部分场景下,这里所指的信任关系是双向而非单向的。...在Web服务的世界中,消息交换为通信的唯一手段,那么相关方之间的信任关系的建立也只能围绕着消息交换来实现。...而WCF的消息安全模式是这四个WS-*规范的实现者。如果你想深刻地理解WCF的安全体系,对这四个安全规范的了解是必须的,这也是我为何要花这么的篇幅来介绍它们的原因。
领取专属 10元无门槛券
手把手带您无忧上云