Welcome 微信登录

首页 / 软件开发 / WCF

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

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

WCF技术剖析之二十一: WCF基本的异常处理模式[上篇]2012-11-11 博客园 Artech由于WCF采用.NET托管语言(C#和NET)作为其主要的编程语言,注定以了基于WCF的编程方式不可能很复杂。同时,WCF设计的一个目的就是提供基于非业务逻辑的通信实现,为编程人员提供一套简单易用的应用编程接口(API)。WCF编程模式的简单性同样体现在异常处理上面,本篇文章的主要目的就是对WCF基于异常处理的编程模式做一个简单的介绍。一、当异常从服务端抛出...
WCF技术剖析之二十一:WCF基本异常处理模式[中篇]

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

WCF技术剖析之二十一:WCF基本异常处理模式[中篇]2012-11-14 cnblogs Artech通过WCF基本的异常处理模式[上篇], 我们知道了:在默认的情况下,服务端在执行某个服务操作时抛出的异常(在这里指非FaultException异常),其相关的错误信息仅仅限于服务端可见,并不会被WCF传递到客户端;如果将开启了IncludeExceptionDetailInFaults的ServiceDebug服务行为通过声明(通过在服务类型上应用Se...
WCF技术剖析之二十一:WCF基本异常处理模式[下篇]

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

WCF技术剖析之二十一:WCF基本异常处理模式[下篇]2012-11-14 博客园 Artech从FaultContractAttribute的定义我们可以看出,该特性可以在同一个目标对象上面多次应用(AllowMultiple = true)。这也很好理解:对于同一个服务操作,可能具有不同的异常场景,在不同的情况下,需要抛出不同的异常。 1: [AttributeUsage(AttributeTargets.Method, AllowMultiple =...
WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]

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

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]2012-11-17 博客园 Artech对于上一篇文章 (WCF基本异常处理模式:[上篇]、[中篇]、[下篇]),主要是站在最终开发者的角度对WCF关于异常处理编程模式进行了介绍,接下来,我们需要将我们的目光转移到WCF框架内部,深入剖析整个WCF异常处理流程。在基于SOAP的消息交换过程中,异常最终通过Fault消息承载,所以很自然地,接下来的介绍从SOAP Fault说起。一、 ...
WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]

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

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]2012-11-17 博客园 Artech在[上篇]中,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常。在服务执行过程中,我们手工抛出FaultException异常,WCF服务端框架会对该异常对象进行序列化病最终生成Fault消息。当WCF客户端框架介绍到该Fault消息之后,会做一项相反的操作:对Fault消息中进行解析和反序列化,重新...
WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]

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

WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]2012-11-17 博客园 ArtechWCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服务时捕获异常,完全感觉不到“分布式”的存在,如同典型的“本地”操作一般。为了实现这样的效果,WCF在内部为我们作了很多。消息交换是WCF进...
WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]2012-11-20 博客园 Artech服务调用的目的体现在对某项服务功能的消费上,而功能的实现又定义在相应的服务类型中。不论WCF服务端框架处理服务调用请求的流程有多么复杂,最终都落实在服务实例的激活和操作方法的执行上面。WCF中的实例管理(Instance Management)旨在解决服务实例的激活和服务实例生命周期的控制。会话(Session)的目的在于保...
WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]2012-11-20 cnblogs Artech在[第1篇]中,我们介绍了WCF关于实例管理一些基本的知识点,包括InstanceContext、InstanceContextMode、已经如何通过ServiceBehaviorAttribute应用不同的实例上下文模式给不同的服务。在[第1篇]中,对WCF采用的三种不同实例上下文模式进行了简单的比较,本篇的重点方...
WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]

WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]2012-11-20 cnblogs Artech在[第2篇]中,我们深入剖析了单调(PerCall)模式下WCF对服务实例生命周期的控制,现在我们来讨轮另一种极端的服务实例上下文模式:单例(Single)模式。在单例模式下,WCF通过创建一个唯一的服务实例来处理所有的客户端服务调用请求。这是一个极端的服务实例激活方式,由于服务实例的唯一性,所有客户端每次调用的状态...
WCF技术剖析之二十四:ServiceDebugBehavior服务行为是如何实现异常的传播的?

WCF技术剖析之二十四:ServiceDebugBehavior服务行为是如何实现异常的传播的?

WCF技术剖析之二十四:ServiceDebugBehavior服务行为是如何实现异常的传播的?2012-11-22 博客园 蒋金楠服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户端传播。对于一般的异常(比如执行Divide操作抛出的DivideByZeroException),在默认的情况下,异常信息无法实现向客户端传递。但是,倘若为某个服务应用了ServiceDebugBehavior这么一个服务行为,并开...
WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[WS标准篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[WS标准篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[WS标准篇]2012-11-22 博客园 蒋金楠元数据实际上是服务终结点的描述,终结点由地址(Address)、绑定(Binding)和契约(Contract)经典的ABC三要素组成。认真阅读过《WCF技术剖析(卷1)》的读者相对会对这三要素的本质有一个深刻的认识:地址决定了服务的位置并实现相应的寻址机制;契约描述了消息交换模式(Message Exchange Pattern: MEP)...
WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[元数据描述篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[元数据描述篇]

WCF技术剖析之二十五:元数据(Metadata)架构体系全景展现[元数据描述篇]2012-11-22 博客园 蒋金楠在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy、WS-Transfer和WSDL,因为WCF元数据结构体系完全是基于WS-MEX等相关的规范之上。熟悉这些基本的WS规范,对于我们全面、深刻的理解WCF整个元数据架构体系具有十分重要的意义。不仅仅是针对元数据,对于后续章节陆续要介绍的内容,比如事...
WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]

WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]

WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]2012-12-04 cnblogs 蒋金楠元数据的导出就是实现从ServiceEndpoint对象向MetadataSet对象转换的过程,在WCF元数据框架体系中,元数据的导出工作由MetadataExporter实现。MetadataExporter是一个抽象类型,定义了导出元数据的基本行为。WCF定义一个具体的MetadataExporter:WsdlExporter,将...
WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]

WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]

WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]2012-12-04 cnblogs 蒋金楠通过《实现篇》对WSDL元素和终结点三要素的之间的匹配关系的介绍,我们知道了WSDL的Binding元素来源于终结点的绑定对象,那么这些基于Binding的元数据以及相应的策略断言是如何被写入WSDL的呢?WSDL导出扩展(WSDL Export Extension)和策略导出扩展(Policy Export Extension)就是...
WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]

WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]

WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]2012-12-06 cnblogs 蒋金楠对于WCF服务端元数据架构体系来说,通过MetadataExporter将服务的终结点导出成MetadataSet(参考《如何导出WCF服务的元数据》),仅仅是完成了一半的工作。被成功导出的以MetadataSet对象表示的元数据需要最终作为可被访问的网络资源发布出来,才能被服务消费者获取,进而有效地帮助他们进行服务调用。元数据的发布最终是通过Ser...
WCF技术剖析之二十七: 如何将一个服务发布成WSDL

WCF技术剖析之二十七: 如何将一个服务发布成WSDL

WCF技术剖析之二十七: 如何将一个服务发布成WSDL2012-12-06 cnblogs 蒋金楠[基于WS-MEX的实现](提供模拟程序)通过《如何将一个服务发布成WSDL[编程篇]》的介绍我们知道了如何可以通过编程或者配置的方式将ServiceMetadataBehavior这样一个服务形式应用到相应的服务上面,从而实现基于HTTP-GET或者WS-MEX的元数据发布机制。那么在WCF内部具体的实现原理又是怎样的呢?相信很多人对此都心存好奇,本篇文章的...
WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现]

WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现]

WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现]2012-12-06 cnblogs 蒋金楠(提供模拟程序)基于HTTP-GET的元数据发布方式与基于WS-MEX原理类似,但是ServiceMetadataBehavior需要做的更多额外的工作。原因很简单,由于在WS-MEX模式下,我们为寄宿的服务添加了相应的MEX终结点,那么当服务被成功寄宿后,WCF已经为元数据的消息交换建立了如图1所示的分发体系,我们需要做的仅仅是...
WCF技术剖析之二十八:自己动手获取元数据

WCF技术剖析之二十八:自己动手获取元数据

WCF技术剖析之二十八:自己动手获取元数据2012-12-07 cnblogs 蒋金楠元数据的发布方式决定了元数据的获取行为,WCF服务元数据架构体系通过ServiceMetadataBehavior实现了基于WS-MEX和HTTP-GET的元数据发布,针对这两种不同的协议,元数据获取的实现方式也是不同的。我们首先来实现基于WS-MEX的元数据获取方式。本文配套源码:一、 基于WS-MEX的元数据获取ServiceMetadataBehavior通过创建M...
WCF技术剖析之二十九:换种不同的方式调用WCF服务

WCF技术剖析之二十九:换种不同的方式调用WCF服务

WCF技术剖析之二十九:换种不同的方式调用WCF服务2012-12-07 cnblogs 蒋金楠我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码和配置;通过ChannelFactory<TChannel>创建服务代理对象。在这篇文章中,我们采用一种独特的方式进行服务的调用。从本质上讲,我们只要能够创建于服务端相匹配的终结点,就能够实现正常的服务调用。在WCF客户端元数据架...
WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇]

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇]

WCF技术剖析之三十:一个很有用的WCF调用编程技巧[上篇]2012-12-07 cnblogs 蒋金楠在进行基于会话信道的WCF服务调用中,由于受到并发信道数量的限制,我们需要及时的关闭信道;当遇到某些异常,我们需要强行中止(Abort)信道,相关的原理,可以参考我的文章《服务代理不能得到及时关闭会有什么后果?》。在真正的企业级开发中,正如我们一般不会让开发人员手工控制数据库连接的开启和关闭一样,我们一般也不会让开发人员手工去创建、开启、中止和关闭信道,...
<< 11 12 13 14 15 16 17 18 19 20 >>