首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的WCF之旅(3):在WCF中实现双工通信

图2 订阅-发布 二、实例演示:创建基于双工通信的WCF应用 接下来我们通过一个的案例演示基于双工通信的WCF应用。为简单起见,我们沿用计算服务的例子。...所以如果我们将该语句去掉,将会抛出如图4所示的ProtocolException异常。...图5 双工通信的并发、死锁 异常的消息已经道出了出错的原因和解决方案,不过可能是由于Visual Studio汉化的原因,显示的出错消息显得有点不知所以。...图6 II 5.x + WsDualHttpBinding导致的AddressAlreadyInUseException异常异常的出现和不同版本的IIS监听机制有关。...WSDualHttpBinding通过创建两个单项信道的方式提供双工通信的实现。 对于一个双工通信的WCF服务来说,回调过程本质上也是一种服务调用,是对寄宿于客户端的回调服务的调用。

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

Mono 3.0.2 基于双工通信的WCF应用 Demo

双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交换模式使服务端回调(Callback)客户端操作成为可能。...本文测试Mono 3.0.2/.NET 4对双工(Duplex)模式的WCF支持。...演示基于双工通信的WCF应用是一个简单的计算服务CalculatorService,我们通过单向(One-way)的模式调用CalculuateService(也就是客户端不可能通过回复消息得到计算结果...由于双工通信依赖于一个双工的信道栈,即依赖于一个能够支持双工通信的绑定,在此我们选用了NetTcpBinding,Mono下的wsDualHttpBinding 是不支持的哦,具体可以参看 http:/...代码下载 相关文章: 我的WCF之旅(3):在WCF中实现双工通信 Mono WCF Advent Day 11: NetTcpBinding Using WCF Callback Services Throttling

72860

WCF系列教程之WCF客户端异常处理

、使用客户端或者通过对象调用操作,或者关闭基础客户端通道,都会在客户端应用程序中出现异常,WCF是基于网络的通讯服务,错误异常也是要基于消息传递的,在WCF中提供了一个错误消息处理的类FaultException...,WCF客户端可以通过它,来接收服务端传递回来的异常信息。...二、WCF异常类型 1、意外异常:意外异常包括 (1)、灾难性故障(OutOfMemoryException) (2)、编程错误(ArgumentException(参数异常)和InvalidOperationException...(无效的操作异常)) 通常没有有效的方法来处理意外错误,所以通产不应该在调用WCF客户端时捕获这些异常 2、预期异常:预期异常包括 (1)、TimeoutException (2)、CommunicationException...  (3)、CommunicationException 的任何派生类 上面这些异常表明在通信的过程中出现问题,该问题可以通过终止WCF客户端并报告通信故障而得到安全的处理,因为外部因素可能导致任何应用程序中出现这些错误

1.1K60

WCF技术剖析之二十一:WCF基本异常处理模式

通过WCF基本的异常处理模式[上篇], 我们知道了:在默认的情况下,服务端在执行某个服务操作时抛出的异常(在这里指非FaultException异常),其相关的错误信息仅仅限于服务端可见,并不会被WCF...在真正通过WCF来架构我们的分布式系统中,我们往往需要一种折中的异常传播机制:自定义服务端异常信息。这样既可以让客户端得到一个易于理解的错误信息,又在一定程度上避免了一些敏感信息的泄露。...FaultException异常,该异常对象通过以字符串形式体现的自定义错误信息创建。...关于序列化,和与此相关的数据契约、数据契约序列化器等,在《WCF技术剖析(卷1)》的第5章有深入、全面的介绍。...图1 客户端不能正常捕获FaultException异常 三、错误契约(Fault Contract) 要回答上面出错的原因,就需要谈到WCF或者SOA一个根本的特征

1.1K110

2019-1-31-wcf入门(11)

2019-1-30-wcf入门(10) - huangtengxiao中介绍了wpf提供的2种错误协定回馈异常的方式。...这边博客介绍如何利用我们现有知识针对OneWay的情形回馈异常 回馈单向模式异常 为什么单向模式不能回馈异常 我们在2019-1-25-wcf入门(4) - huangtengxiao博客中说过,单向模式在调用服务端方法时会立刻返回...没错就是2019-1-25-wcf入门(5) - huangtengxiao中提到的双工模式 说白了,就是添加一个传递异常信息的回调接口,在发生异常时向这个回调接口发送异常信息 ?...存在问题 既然是利用双工协定,那么必然需要一些双工协定的必要支持,例如绑定,会话,实例化等选择 这个会在一些期望添加单向模式异常反馈的现有WCF方案造成一些限制 小结 我们研究了WCF服务的单向模式异常反馈...,其特点有 利用双工在业务层实现 有双工模式的限制 能处理单向操作 参考链接: 如何:在服务协定中声明错误 - Microsoft Docs 定义和指定错误 - Microsoft Docs 在协定和服务中指定和处理错误

29720

WCF技术剖析之二十一: WCF基本的异常处理模式

WCF编程模式的简单性同样体现在异常处理上面,本篇文章的主要目的就是对WCF基于异常处理的编程模式做一个简单的介绍。...一、当异常从服务端抛出 对于一个典型的WCF服务调用,我个人倾向于将潜在抛出的异常费为两种类型:应用异常(Application Exception)和基础结构(Infrastructure Exception...图2 客户端捕获从服务端抛出的异常 从上面的实例演示中,我们可以获知WCF在默认情况下的异常处理行为:对于服务端抛出的异常(这里主要指应用异常),客户端捕获到的总一个具有相同异常消息的System.ServiceModel.FaultException...由于异常类型和消息固定不变,对于服务的客户端来说,直接通过捕获到的异常相关的信息是无法确定服务端在执行服务操作的时候遇到的具体的错误是什么。 WCF如此设计的一个主要的目的为了安全。...FaultException继承自FaultException,这两种典型的异常类型在WCF异常处理中具有重要的地位,在本章后续章节中还会重点讲述,在这里先做一点简单的介绍。

728100

WCF服务部署后异常的处理

在部署项目的时候,发现WCF总是存在问题,一直没找出什么原因。   ...开始在项目开发阶段客户端调用WCF服务的代码如下 JSAJService.JSAJServiceClient _ajService = new JSAJService.JSAJServiceClient...(); bool IsCurrent = _ajService.IsCurrentEmpty(ID,User);   或者在本调用文件类中定义一个全局的WCF客户端实例服务。  ...不过,由于wcf客户端都有一个超时时间,可能静止过了一段时间,你在界面刷新数据的时候,你会发现出现下面的错误:"通信对象System.ServiceModel.Channels.ServiceChannel...有没有更好的方式,避免出错,又能够正确调用wcf客户吗,当然有,下面这样方式就是比较好的一种解决方案,经过实际测试,效果不错。

64520

聊聊“全双工

“全双工”一词对于通信专业出身的老码农而言太容易引起曾经的记忆了,“通信就是计算机”也是大学的一位老师给我印象很深的一句话。那么—— 什么是全双工呢? AI时代的全双工又意味着什么呢?...我们如何更好地应用AI时代的全双工呢? 本文试图解释这些问题。 ? 什么是全双工? 全双工(Full Duplex)是通信传输的一个术语。...我们日常使用的移动电话、固定电话以及各种远程工作的会议系统都是全双工通信的方式,半双工的通信工具比较典型的是对讲机,某些调度系统也还在使用半双工的方式。...原则上,这些技能都可以使用全双工的能力,但是,为了保证达到完美的全双工效果,目前全双工作为“preview feature”在DBP 平台上开放了。...作为一个开发者,如何在自己的技能中应用全双工能力呢? 1. 选择全双工能力 目前的全双工能力主要面向“自定义技能”,因为多轮对话才是全双工的用武之地。

1.9K50

浅谈单工,半双工和全双工有何区别和联系?

双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机。...全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送信息,实现双向通信,举例:电话通信。...网卡的全双工(Full Duplex)是指网卡在发送数据的同时也能够接收数据,两者同步进行。这好像我们平时打电话一样,说话的同时也能够听到对方的声音,目前的网卡一般都支持全双工。...图示:(分别为单工, 半双工, 全双工) ? 扩展资料: 单工、半双工和全双工是电信计算机网络中的三种通信信道。这些通信信道可以提供信息传达的途径。

2.4K30

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

WCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服务时捕获异常,完全感觉不到“分布式”的存在...所以,实现异常与消息之间的转换是整个异常处理体系的核心,而WCF异常处理框架就着力于完成这样的功能。 ?...我们可以这样来简单地描述WCF异常处理框架的功能实现:WCF服务端将抛出的FaultException异常进行序列化,并根绝消息的SOAP规范(SOAP 1.1或SOAP 1.2)和WS-Addressing...右图体现了错误(Fault)在整个WCF异常处理过程中的流转。...二、异常的抛出、序列化、反序列化与捕获 现在系统的介绍WCF异常处理的整个流程,由于前面已经作了足够的铺垫,具体涉及到WCF对整个异常处理流程的控制,反而没有太多内容可讲。

867100

python实现单工、半双工、全双工聊天室

聊天室半双工实现: 半双工实现是连接建立以后,服务器等待客户端发送消息,客户端发送消息后等待接收服务器,这样一来一回循环往复下去。直到出现quit,关闭连接。...这就引出了全双工实现的原理。 聊天室全双工(P2P)实现: 因为TCP连接是一个流,所以Socket模块的recv()是直到Scoket连接终断不会停止等待接受从另一端发送的消息的。...全双工实现比半双工工多了个线程处理,所以服务器与客户端必须开两个线程,一个收消息一个发消息,并且发消息的线程需要阻塞收消息的线程。...聊天室全双工(P2M)实现: 这里稍微修改了P2P实现的服务端逻辑,不在将Socket连接一一对应,而是将所有的Socket连接存入一个列表,每当一个客户端发送消息,服务端就将这段消息广播给所有的客户端...threading.Thread(target=talk, args=(ss,)) t1.start() if __name__ == '__main__': main() 聊天室全双工

1.6K10

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

在服务执行过程中,我们手工抛出FaultException异常WCF服务端框架会对该异常对象进行序列化病最终生成Fault消息。...WCF框架自动为我们作了这么多“幕后”工作,使得开发人员可以完全采用编写一般的.NET应用程序的模式进行异常的处理:在错误的地方抛出相应异常,对于潜在出错的方法调用进行相应的异常捕获和处理。...所以,WCF异常处理框架的核心功能就是实现FaultException异常和Fault消息之间的转换,接下来我们着重来讨论这个话题。...一、FaultException异常和Fault消息之间的纽带:MessageFault 对于WCF异常处理框架,其本身并不直接进行FaultException异常和Fault消息之间的转换,而是通过另外一个作为中介的对象来完成的...严格地说来,FaultFormatter仅仅是WCF一个内部对象,但是对该对象的深刻认识将非常有助于我们有效的理解WCF整个异常处理机制。

1.4K110

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

对于上一篇文章 (WCF基本异常处理模式:[上篇]、[中篇]、[下篇]),主要是站在最终开发者的角度对WCF关于异常处理编程模式进行了介绍,接下来,我们需要将我们的目光转移到WCF框架内部,深入剖析整个...WCF异常处理流程。...在WCF异常处理体系中,对于异常或者错误,在XML的世界里最终通过Fault消息体现;而在托管对象的世界中,即使相应的Exception对象。...在服务执行过程中,我们手工抛出FaultException异常WCF服务端框架会对该异常对象进行序列化病最终生成Fault消息。...所以,WCF异常处理框架的核心功能就是实现FaultException异常和Fault消息之间的转换,在[中篇]中,我们着重来讨论这个话题。

1.1K100
领券