wcf数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)

评论(0)浏览(179)分类:Asp.Net/C#/WCF
wcf数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)  大部分的系统都是以数据为中心的(Data Central),功能的实现表现在对相关数据的正确处理。而数据本身,是有效信息的载体,在不同的环境具有不同的表示。一个分布式的互联系统关注于数据 的交换,而数据正常交换的根本前提是参与数据交换的双方对于数据结构的一致性理解。这就为数据的表现提出了要求,为了保证处于不同平台、不同厂商的应用..

wcf序列化过程中的已知类型(Known Type)

评论(0)浏览(125)分类:Asp.Net/C#/WCF
wcf序列化过程中的已知类型(Known Type)  DataContractSerializer承载着所有数据契约对象的序列化和反序列化操作。在上面一篇文章(《wcf数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)》) 中,我们谈到DataContractSerializer基本的序列化规则;如何控制DataContractSerializer序列化或者反序列化 对象的数量;以及如何在序列化后的XML中保存被序列化对象..

wcf集合数据契约

评论(0)浏览(120)分类:Asp.Net/C#/WCF
wcf集合数据契约  在.NET中,所有的集合都实现了IEnumerable接口,比如Array、Hashtable、ArrayList、Stack、Queue 等。有的集合要求元素具有相同的类型,这种集合一般通过泛型的方式定义,它们实现另一个接口IEnumerableT (IEnumerableT本身继承自IEnumerable),这样的集合有ListT、 DictionaryTKey,TValue、StackT、QueueT等。基于集合类型的序列化具 有一..

wcf泛型数据契约

评论(0)浏览(138)分类:Asp.Net/C#/WCF
wcf泛型数据契约  在.NET Framework 2.0中,泛型第一次被引入。我们可以定义泛型接口、泛型类型、泛型委托和泛型方法。序列化依赖于真实具体的类型,而泛型则刻意模糊了具体类型概念。而集 合代表一组对象的组合,集合具有可迭代(Enumerable)的特性,可以通过某个迭代规则遍历集合中的每一个元素。由于范型类型和集合类型在序列化和 反序列化上具有一些特殊..

WCF客户端异步操作应用

评论(0)浏览(95)分类:Asp.Net/C#/WCF
WCF客户端异步操作应用  按照操作执行所需的资源类型,我们可以将操作分为CPU绑定型(CPU Bound)操作和I/O绑定型(I/O Bound)操作。对于前者,操作的执行主要利用CPU进行密集的计算,而对于后者,大部分的操作处理时间花在I/O操作处理,比如访问数据库、文件系 统、网络资源等。对于I/O绑定型操作,我们可以充分利用多线程的机制,让多个操作在自己的线程并发执行..

WCF服务器端异步操作应用

评论(0)浏览(149)分类:Asp.Net/C#/WCF
WCF服务器端异步操作应用  上篇介绍了WCF客户端异步操作应用 ,现在介绍服务端如何通过异步的方式为服务提供实现。  在定义服务契约的时候,相信大家已经注意到了 OperationContractAttribute特性具有一个bool类型的AsynPattern。该属性可以将一个服务操作定义成异步实现模 式,接下来的内容主要是着眼于介绍异步操作的定义和实现原理。一、异步操作的定义和实现原理..

调用WCF服务的客户端应该如何进行异常处理

评论(0)浏览(152)分类:Asp.Net/C#/WCF
调用WCF服务的客户端应该如何进行异常处理  在前面一片文章(WCF服务代理不及时关闭会有什么后果) 中,我们谈到及时关闭服务代理(Service Proxy)在一个高并发环境下的重要意义,并阐明了其根本原因。但是,是否直接调用ICommunicationObject的Close方法将服务代 理关闭就万事大吉了呢?事情远不会这么简单,这其中还会涉及关于异常处理的一些操作,这就是本篇文章需要讨论的话题。一..

WCF服务代理不及时关闭会有什么后果

评论(0)浏览(90)分类:Asp.Net/C#/WCF
WCF服务代理不及时关闭会有什么后果  对WCF具有一定了解的人都会知道:在客户端通过服务调用进行服务调用过程中,服务代理应该及时关闭。但是如果服务的代理不等得到及时的关闭,到底具有怎样的后果?什么要关闭服务代理?在任何时候都需要关闭服务代理吗?是否有一些例外呢?本篇文章将会围绕着这些问题展开。一、会话信道(Sessionful Channel) V.S. 数据报信道(Datagram Ch..

WCF-ClientBase中对ChannelFactory的缓存机制

评论(0)浏览(348)分类:Asp.Net/C#/WCF
WCF-ClientBase<T>中对ChannelFactory<T>的缓存机制  和传统的分布式远程调用一样,WCF的服务调用借助于服务代理(Service Proxy)。而ChannelFactoryT则是服务代理的创建者。WCF采用基于终结点(Endpoint)服务消费方式:WCF 服务通过一个或者多个终结点暴露给潜在的服务消费者,服务的消费中通过与之匹配的终结点与之交互。在客户端,我们具有两种典型的服务代理创建方式,其一是 通过诸如Svc..

wcf创建基于MSMQ的Responsive Service

评论(0)浏览(140)分类:Asp.Net/C#/WCF
wcf创建基于MSMQ的Responsive Service一、One-way MEP V.S. Responsible Service  我们知道MSMQ天生就具有异步的特性,它只能 以One-way的MEP(Message Exchange Pattern)进行通信。Client和Service之间采用One-way MEP的话就意味着Client调用Service之后立即返回,它无法获得Service的执行结果,也无法捕捉Service运行的 Exception。下图简单表述了基于MSMQ的WCF Service中Clien..

实现WCF与EnterLib PIAB、Unity的集成

评论(0)浏览(83)分类:Asp.Net/C#/WCF
实现WCF与EnterLib PIAB、Unity的集成  在这之前,我写过深入介绍MS EnterLib PIAB的文章(参阅《MS Enterprise Library Policy Injection Application Block 深入解析[总结篇]》),也写过WCF与PIAB的集成(参阅:《WCF后续之旅(8):通过WCF Extension 实现与MS Enterprise Library Policy Injection Application Block 的集成》)、WCF与Unity的集成(参阅《WCF后续之旅(7):..

在基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效

评论(0)浏览(115)分类:Asp.Net/C#/WCF
在基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效  本篇文章来源于几天前一个朋友向我咨询的问题。问题是这样的,他说他采用ASP.NET 应用程序的方式对定义的WCF服务进行寄宿(Hosting),并使用配置的方式对服务的BaseAddress进行了设置,但是在创建 ServiceHost的时候却抛出InvalidOperationException,并提示相应Address Scheme的BaseAddress找不到。我意识到这可能和WCF中用于判断服务寄宿..

利用ASP.NET兼容模式创建支持会话(Session)的WCF服务

评论(0)浏览(142)分类:Asp.Net/C#/WCF
利用ASP.NET兼容模式创建支持会话(Session)的WCF服务  在《基于IIS的WCF服务寄宿(Hosting)》 中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side)模式和ASP.NET兼容模式。对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个 HttpHandler实现。只有在ASP.NET兼容模式下,我们熟悉的一些AS..

基于IIS的WCF服务寄宿(Hosting)

评论(0)浏览(202)分类:Asp.Net/C#/WCF
基于IIS的WCF服务寄宿(Hosting)  基于IIS的服务寄宿依赖于两个重要的对象:System.ServiceModel.Activation.HttpModule和System. ServiceModel.Activation.HttpHandler。一、通过HttpModule实现服务寄宿  在 默认的情况下,基于IIS的服务寄宿是通过一个特殊的HttpModule实现的,其类型为 System.ServiceModel.Activation.HttpModule,是一个定义在System.ServiceModel程序..

wcf如何进行基于非HTTP的IIS服务寄宿

评论(0)浏览(134)分类:Asp.Net/C#/WCF
wcf如何进行基于非HTTP的IIS服务寄宿  在介绍IIS7.0的时候,我们谈到,HTTP.SYS+W3SVC实现了基于HTTP的请求监听,在此基础上引入了以下三组网络监听器(Listener)和监听适配器(Adapter),实现了基于TCP、Named Pipes和MSMQ的网络监听,图1揭示了IIS7的总体结构。TCPListener|TCP Listener AdapterNamedPipes Listener|Named Pipes Listener AdapterMSMQ Listener|MSMQ Listene..

ASP.NET模拟WCF基础架构

评论(0)浏览(87)分类:Asp.Net/C#/WCF
ASP.NET模拟WCF基础架构WCF框架处理流程和涉及的组件  我们的模拟程序将你搭建一个迷你版的WCF框架,为了展示WCF整个处理流程中使用到一些特殊组件。我们首先来简单介绍一下对于一个简单的WCF服务调用,WCF的客户端和服务端框架的处理流程,和该流程的每一个阶段都使用那些重要组件。  下面的列表列出了WCF服务端框架对于处理一个简单的WCF服务调用请求所提供的功能..

WCF教程目录

评论(0)浏览(140)分类:Asp.Net/C#/WCF
WCF教程目录  WCF是构建和运行互联系统的一系列技术的总称,它是建立在Web Service架构上的一个全新的通信平台。你可以把它看成是.NET平台上的新一代的Web Service。WCF为我们提供了安全、可靠的的消息通信,也为我们提供了更好的可互操作性是的我们可以和其他的平台进行交流。  微软斥巨资打造WCF,在我们看来主要出于下面两个目的:实现其对现有的分布..

web服务因URL意外地以/**结束,请求格式无法识别

评论(0)浏览(290)分类:Asp.Net/C#/WCF
web服务因URL意外地以/**结束,请求格式无法识别关键字:webservice web服务 asmx 格式无法识别  直接访问xxxx.asmx/方法名称获取方法返回内容时,如果未配置过web.config文件,会出现下面的错误/应用程序中的服务器错误。 因 URL 意外地以/Now结束,请求格式无法识别。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细..

wcf使用MSMQ进行Reliable Messaging

评论(0)浏览(158)分类:Asp.Net/C#/WCF
wcf使用MSMQ进行Reliable Messaging一、为什么要使用MSMQ  在一个分布式的环境中,我们往往需要根据具体的 情况采用不同的方式进行数据的传输。比如在一个Intranet内,我们一般通过TCP进行高效的数据通信;而在一个Internet的环境中,我们则通 常使用Http进行跨平台的数据交换。而这些通信方式具有一个显著的特点,那就是他们是基于Connection的,也就是说,交互双方在进行通信的..

WCF的双向通讯-基于Http的双向通讯和基于TCP的双向通讯

评论(0)浏览(133)分类:Asp.Net/C#/WCF
WCF的双向通讯-基于Http的双向通讯和基于TCP的双向通讯  在一个基于面向服务的分布式环境中,借助 一个标准的、平台无关的Communication Infrastructure,各个Service通过SOAP Message实现相互之间的交互。这个交互的过程实际上就是Message Exchange的过程。WCF支持不同形式的Message Exchange,我们把这称之为Message Exchange Pattern(MEP), 常见的MEP包括: Request/Reply,Request/Forget(On..

WCF进行Exception Handling

评论(0)浏览(114)分类:Asp.Net/C#/WCF
WCF进行Exception Handling  在任何Application的开发中, 对不可预知的异常进行troubleshooting时,异常处理显得尤为重要。对于一般的.NET系统来说,我们简单地借助try/catch可以很容 易地实现这一功能。但是对于 一个分布式的环境来说,异常处理就没有那么简单了。按照面向服务的原则,我们把一些可复用的业务逻辑以Service的形式实现,各个Service处于 一个自治的环境..

WCF中使用tcpTrace来进行Soap Trace

评论(0)浏览(109)分类:Asp.Net/C#/WCF
WCF中使用tcpTrace来进行Soap Trace  无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message。在我们对Web Service和WCF进行深入学习的时候,借助一些Soap Trace 工具对Soap Message进行深入剖析是非常有必要的。在这些工具之中,我觉得最好用的就是Microsoft Soap Toolkit中的Soap Trace Utility和tcpTrace。我们今天就来讲讲如何在WCF中..

WCF中的Session和Instancing Management

评论(0)浏览(91)分类:Asp.Net/C#/WCF
WCF中的Session和Instancing ManagementWCF中的Session  我们知道,WCF是MS基于SOA建立的一套在 分布式环境中各个相对独立的Application进行Communication的构架。他实现了最新的基于WS-*规范。按照SOA的原则,相对独自 的业务逻辑以service的形式封装,调用者通过Messaging的方式调用Service。对于承载着某个业务功能的实现的Service应该具有 Context无关性、甚至是Solution无关性,..

wcf实现Service Contract的继承

评论(0)浏览(115)分类:Asp.Net/C#/WCF
wcf实现Service Contract的继承  当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对 SOA,对面向服务产生误解。其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替。在开始本Blog之前,我先 来谈谈我对SOA和OO的区别,首先申明,这只是一家之言,欢迎大家批评指正,并且关于SO的谈论不是本Blog的主题,..

wcf在Winform Application中调用Duplex Service出现TimeoutException的原因和解决方案

评论(0)浏览(137)分类:Asp.Net/C#/WCF
wcf在Winform Application中调用Duplex Service出现TimeoutException的原因和解决方案  在WCF中实现双工通信中提供了一个如果在Console Application 调用Duplex WCF Service的Sample,当作为Client的ConsoleApplication 换成Winform Application,运行程序的时候总是出现Timeout的错误。1.问题重现  首先我们来重现这个错误,在这里我只写 WinForm的代码,其他的内容请参考我的文章。Client端的Proxy Class(DuplexCalculator..

WCF实现Service Contract的重载(Overloading)

评论(0)浏览(109)分类:Asp.Net/C#/WCF
WCF实现Service Contract的重载(Overloading)  对于.NET重载(Overloading) 定义不同参数列表的同名方法(顺便提一下,我们但可以在参数列表上重载方法,我们甚至可以在返回类型层面来重载我们需要的方法页就是说,我们可以 定义两个具有相同参数列表但不同返回值类型的两个同名的方法。不过这种广义的Overloading不被我们主流的.NET 语言所支持的C#, VB.NET, 但是对于IL来说,这这种基于..

WCF序列化(一)

评论(0)浏览(102)分类:Asp.Net/C#/WCF
WCF序列化(一)SOA 和Message  Windows Communication Foundation (WCF) 是基于面向服务架构(Service Orientation ArchitectureSOA)的一种理想的分布式技术(Distributed Technology), 相信在今后在建立基于SOA企业级别的解决方案和进行系统集成方面将会大有作为。一个基于SOA结构的互联系统(Connected System)通常由若干相互独立的子系统(Sub-System)..

WCF序列化(二)

评论(0)浏览(93)分类:Asp.Net/C#/WCF
WCF序列化(二)XMLSerializer  提到XMLSerializer,我想绝大多数 人都知道这是asmx采用的Serializer。首先我们还是来看一个例子,通过比较Managed Type的结构和生成的XML的结构来总结这种序列化方式采用的是怎样的一种Mapping方式。和DataContractSerialzer Sample一样,我们要定义用于序列化对象所属的TypeXMLOrder和XMLProduct,他们和相面对应的 DataCont..

WCF中实现双工通信

评论(0)浏览(140)分类:Asp.Net/C#/WCF
WCF中实现双工通信双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下 (比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交 换模式使服务端回调(Callback)客户端操作成为可能。..

wcf Endpoint简介

评论(0)浏览(141)分类:Asp.Net/C#/WCF
wcf Endpoint简介  WCF实际上是构建了一个框架,这个框架实现了 在互联系统中各个Application之间如何通信。使得Developers和Architect在构建分布式系统中,无需在考虑如何去实现通信相关 的问题,更加关注与系统的业务逻辑本身。而在WCF Infrastructure中,各个Application之间的通信是由Endpoint来实现的。Endpoint的结构Endpoint包含以下4个对象:Address: ..