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

《WCF技术剖析》博文系列汇总

如果被序列化对象或者被反序列化生成的对象包含不可知的类型,序列化或者反序列化将会失败。...如同WCF的插件一样,这些自定义的WCF扩展以即插即用的方式参与到WCF整个消息处理流程之中。了解 WCF整个消息处理流程是灵活进行WCF扩展的前提。...比如说,我们有一个服务操作采用流的方式进行文件的上载,除了以流的方式传输以二进制表示的文件内容外,还需要传输一个额外的基于文件属性的信息,比如文件格式、文件大小等。...[第21篇] WCF基本的异常处理模式[上篇][中篇][下篇] 由于WCF采用.NET托管语言(C#和NET)作为其主要的编程语言,注定以了基于WCF的编程方式不可能很复杂。...[第30篇] 一个很有用的WCF调用编程技巧[上篇][下篇] 在进行基于会话信道的WCF服务调用中,由于受到并发信道数量的限制,我们需要及时的关闭信道;当遇到某些异常,我们需要强行中止(Abort)信道

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

    WCF学习笔记 5

    WCF的宿主环境ServiceHost 服务通过 ServiceHost 进行寄宿。可以添加终结以暴露可被调用寻址和调用的资源。...的ServiceEndpoint 在 WCF 服务编程中,终结点是其通信的核心对象,服务通过相应的终结点发布出来,客户端通过与服务终结点匹配的终结点对服务进行调用。...终结点在WCF编程接口中通过 ServiceEndpoint 类型表示,ServiceEndpoint 具有分别代表终结点地址、绑定和契约的三个核心属性: namespace System.ServiceModel.Description...URL 就是统一资源标识,它唯一地标识一个网络资源和资源所处的位置以及访问方式(访问资源所用的网络协议)。...通过编程方式添加服务终结点(AddServiceEndpoint): using (ServiceHost host = new ServiceHost(typeof(FirstService))) {

    72420

    EndpointAddress——不只是一个Uri

    客户端通过整个以EndpointIdentity对象代表的服务身份与凭证进行比较从而验证正在调用服务确实是自己所希望调用的,而不是一个钓鱼服务。...EndpointAddress通过以Headers属性代表的地址报头列表存放一些寻址的信息。本篇文章着重讲述地址报头。WCF的通信完全建立在消息交换上,而WCF支持多种不同类型的消息。...17: 18: 19: 20: 上面通过编程方式指定的地址报头就可以通过如下一段配置来指定...而结点下的元素就是通过编程方式指定的AddressHeader的值序列化后的XML。...OperationContext Current { get; set; } 7: } 倘若客户端终结点不曾定义地址报头,但是服务端却要求请求消息必须具有这么一个消息报头,那么可以可以通过如下的编程方式将创建的

    838110

    WCF后续之旅(9):通过WCF的双向通信实现Session管理

    WCF这种双向通信的方式是我们可以以Event Broker或者订阅/发布的方式来定义和调用WCF Service。...今天我们就给大家一个具体的例子:通过WCF的duplex communication方式现在Session管理。...一般地我们有两种截然不同的方式来实现这样的功能: 1、客户端驱动 这是大多数人会想得到的方式,通过这样的方式实现session status的检测功能:如下图所示,client端调用相应的service...考虑到对实时性的要求,对于列表中每个session的状态检查都是通过异步的方式同时进行的。...10): 通过WCF Extension实现以对象池的方式创建Service Instance WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity) WCF后续之旅(12

    83180

    WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)

    一、从基于Windows Application客户端的WCF回调失败谈起 在"我的WCF之旅"系列文章中,有一篇(WinForm Application中调用Duplex Service出现TimeoutException...的原因和解决方案)专门介绍在一个Windows Application客户端应用, 通过WCF 的Duplex通信方式进行回调失败的文章.我们今天以此作为出发点介绍WCF在Thread Affinity...或者让Client异步方式调用CalculateService,以便及时释放UI线程,我们可以通过One-way的方式来进行service的调用。...对ISynchronizeInvoke的实现就是为了解决Control的操作必须在创建Control线程的问题,ISynchronizeInvoke定义Invoke和BeginInvoke方法方面我们以同步或者异步的方式操作...按照我们一般的想法,我们的Service面向若干client,肯定是并发的接收client端的请求,以多线程的方式执行service的操作,那么操作中UI 控件的操作肯定会出现错误。

    1K80

    WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)

    一、从基于Windows Application客户端的WCF回调失败谈起 在"我的WCF之旅"系列文章中,有一篇(WinForm Application中调用Duplex Service出现TimeoutException...的原因和解决方案)专门介绍在一个Windows Application客户端应用, 通过WCF 的Duplex通信方式进行回调失败的文章.我们今天以此作为出发点介绍WCF在Thread Affinity...或者让Client异步方式调用CalculateService,以便及时释放UI线程,我们可以通过One-way的方式来进行service的调用。...对ISynchronizeInvoke的实现就是为了解决Control的操作必须在创建Control线程的问题,ISynchronizeInvoke定义Invoke和BeginInvoke方法方面我们以同步或者异步的方式操作...按照我们一般的想法,我们的Service面向若干client,肯定是并发的接收client端的请求,以多线程的方式执行service的操作,那么操作中UI 控件的操作肯定会出现错误。

    867110

    WCF技术剖析(卷1)之目录

    构建一个简单的WCF应用            步骤一:构建整个解决方案            步骤二:创建服务契约            步骤三:创建服务            步骤四:通过自我寄宿的方式寄宿服务...            步骤五:创建客户端调用服务            步骤六:通过IIS寄宿服务    第2章  终结点地址与WCF寻址 (Endpoint Address and WCF Addressing...的绑定模型        3.2  绑定编程            3.2.1  服务寄宿对绑定的指定            3.2.2  服务调用对绑定的指定        3.3  信道与信道栈...            8.1.4  WCF客户端是如何进行服务调用的            8.1.5  案例演示8-2:创建一个托管应用模拟最简单的WCF框架     8.2  ChannelFactory...会话简介            9.4.2  WCF会话编程模型            9.4.3  会话(Per-Session)实例上下文模式        9.5  会话模式、绑定与实例上下文模式

    97890

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

    由于WCF采用.NET托管语言(C#和NET)作为其主要的编程语言,注定以了基于WCF的编程方式不可能很复杂。...同时,WCF设计的一个目的就是提供基于非业务逻辑的通信实现,为编程人员提供一套简单易用的应用编程接口(API)。...WCF编程模式的简单性同样体现在异常处理上面,本篇文章的主要目的就是对WCF基于异常处理的编程模式做一个简单的介绍。...具体来讲,又具有两种等效的方式:配置的方式和应用自定义特性(Custom Attribute)的方式。...在这种情况下,需要调用Abort方法对其进行强行中止。具体的原理,在《WCF技术剖析(卷1)》的第9章有详细的介绍。

    802100

    【FAQ】WeChatFerry 机器人常见问题 v39.0.14

    我把群公告粘贴过来: 【报错提供】 尽量多提供信息,群主是傻子,信息不够看不懂 启用调试以便排查:wcf = Wcf(debug=True) 版本:pip list,查看 wcferry 右边的数字 版本...修改 wcferry 的启动端口: wcf = Wcf(port=10010) # 换一个不冲突的端口吧 如果第一次运行成功,后续提示被占用,那么大概率是前面粗暴关闭了窗口。...Q16 LoadLibrary 调用失败? LoadLibrary 调用失败 请看 Q1。 Q17 安装失败? WARNING Retrying 网络质量不行,换个 pip 源。...Q23 保存语音 / 图片超时 下载图片超时 Q24 初始化失败 初始化失败 1、检查报错路径里的 wcf.exe 是否存在;2.1、如果存在,检查权限;2.2、如果不存在,检查是否安装成功;2.2.1...、如果安装成功,检查是否被杀毒软件干掉了。

    28500

    WCF中数据契约之已知类型的几种公开方式代码中定义配置中定义宿主端使用解析器

    WCF中传输的数据不想传统的面向对象编程,它只传递了一些对象的属性,但是自身并不知道自己属于什么对象,所以,他没有子类和父类的概念,因而也就没有Is-a的关系,所以在WCF中,如果想维持这种继承关系,就需要做一些特殊的处理了...    public interface IHumanResourceService     {         List GetAllEmployees();     } } 这样,在调用端是无法得到...也允许允许通过配置文件的方式添加这些子类。...实现这种数据契约解析器的方法 在WCF中,存在DataContractResolver类,可以在这个类中提供一个维护了唯一标识符和类型之间的映射关系字典,在序列化这个类型时,需要提供一个唯一的标识符作为键形成键与类型的映射关系...;     Console.ReadKey();     host.Close(); } 而在代理一端,可以使用同样的方式安装解析器,不在赘述!

    82530

    WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理

    一、异常的抛出与Close的失败 一般情况下,当服务端抛出异常,客户客户端的服务代理不能直接关闭,WCF在执行Close方法的过程中会抛出异常。我们可以通过下面的例子来证实这一点。...一般情况下,对于客户端来说,信道在下面两种情况下状态会变成Faulted: 调用超时,抛出TimeoutException 调用失败,抛出CommunicationException 所以正确的客户端进行服务调用的代码应该如下面的代码所示...下面的代码演示了基于ChannelFactory创建服务代理的WCF客户端编程方式,对于直接通过强类型服务代理(继承ClientBase的服务代理类型)进行服务调用具有相同的结构。...如果严格按中上面的编程方式对CommunicationException和TimeoutException进出捕获和处理,那么你的客户端代码就会到处充斥中相同的代码片断。...我不知一次说过,如果你的代码中重复频率过高,或者编程人员广泛地采用Ctrl+C|Ctrl+V这样的编程方式,那么这就是你进行代码重构的信号。

    2K90

    WCF客户端运行时架构体系详解

    客户端调用WCF服务的方式不外乎有两种:其一、通过代码生成工具(比如SvcUtil.exe)导入服务的元数据生成服务代理相关的类型;其二、通过ChannelFactory创建服务代理对象...对于WCF客户端应用编程接口来说,ChannelFactory是一个核心类型。...地址(Address):地址作为调用服务的唯一标识并代表了服务所在的位置,客户端终结点必须具有一个正确的地址才能确保请求的消息被发送到正确的目的地; 绑定(Binding):作为信道层的缔造者,绑定最终创建了用于实现消息处理和传输的信道信道栈...你可以通过编程的方式(构造函数)指定终结点的三要素,也可以将此三要素定义在配置文件中,通过终结点配置名称(构造函数的endpointConfigurationName参数)来创建ChannelFactory...我们可以自定义参数检器实现针服务调用前对输入参数的验证,以及服务调用后对返回值和输出参数的验证。 WCF客户端运行时架构体系详解[上篇] WCF客户端运行时架构体系详解[下篇]

    1.3K110

    我的WCF之旅(5):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的重载(Overloading)

    而WCF则可以看成是这一整套Specification的实现。但是这种实现最终还是落实到我们.NET编程上。...我们可以把WS-Specification和我们的基于.NET语言的编程看成是两种截然不同的编程模型(Programming Model)。...WCF的功能则是把这两种不同的编程模型统一起来,实现他们之间的一个Mapping——可以把WCF看成一个Adapter。...现在我们毫无疑问,可以直接调用非重载的方法AddWithTwoOperands和AddWithThreeOperands来调用Calculator Service。...但是我们需要的不是这样,我们需要的Overloading,在Service 我们实现以Overlaoding的方式提供Service,在Client端我们也希望以相同的方式来调用这个Service。

    1K70

    2019-1-23-wcf入门(1)

    在我看来WCF更适合被看做一个统一的通信编程模型。在WCF之前,微软推出过Web Service,.NET Remoting以及基础的Winsock等通信框架。...各个通信方式的编程模型各不相同,这就为开发者学习、维护和切换通信模式产生了障碍。 而WCF几乎涵盖了所有.NET Framework 中的通信方法,为其提供了统一的API接口,以及灵活的配置方案。...而服务协定就规定了服务的API调用方法签名。...这里就涵盖了上述所说的.NET Framework中所有的通信方式。而WCF对其做了统一封装,以便于上层业务的调用。...例如HTTP通道就是对Http协议实现的WCF封装,TCP通道就是对TCP协议的实现封装。 承载 (Host) 承载或者称之为宿主方式,决定了WCF服务的运行方式。

    66810

    快速入门系列--WCF--02消息、会话与服务寄宿

    现在可以发现,基本上以json格式为基础的restful服务其实都转化为了WebAPI项目,而不是WCF。...支持集合数据和字典数据的数据契约 .此外,XML的文档结构描述方式,xsd文件和原来的DTD文件的相关知识也注意学习,可以参看http://utopialxw.iteye.com/blog/1218622.../anonymous * 以URI的形式表示消息的意图,比如调用服务操作 以URI的形式表示消息的唯一标识 表示关联消息的标识服务,提供ASP.NET并行和兼容两种模式,默认使用第一种,第二种仅在需要共享SessionState时,不常用。...而客户端的调用在限定时间内如果无法被及时处理,就会抛出一个TimeoutException异常。 参考资料: [1]蒋金楠. WCF全面解析[M]. 上海:电子工业出版社, 2012.

    1.3K50
    领券