随笔分类 -  WCF

摘要:   上一篇文章WCF进阶:扩展bindingElementExtensions支持对称加密传输阐述了如何扩展BindElementExtension来支持在配置文件中配置服务或者客户端代理,本文讲述另外一种应用,通过实现IEndpointBehavior来全局验证操作参数,并且进一步产生比较复杂的配置支持的实现。 阅读全文
posted @ 2010-04-18 19:31 Robin Zhang 阅读(6358) 评论(7) 推荐(2) 编辑
摘要:    前面两篇文章WCF进阶:将编码后的字节流压缩传输和WCF 进阶: 对称加密传输都是实现了自定义编码,那两个例子中托管服务或者客户端调用都采用的代码实现,WCF更友好的方式是在app.config或web.config来配置服务的运行和调用,本文是介绍如何在配置文件中配置自定义的BindingElement。 阅读全文
posted @ 2010-04-17 23:45 Robin Zhang 阅读(4764) 评论(6) 推荐(4) 编辑
摘要:  大家使用WCF的时候,会不会觉得使用SSL通道传输太麻烦,使用明文传输又觉得不安全呢? 特别是当传递的消息中带有比较敏感,机密的身份信息的时候更是如此呢?我们在上文实现了压缩编码传输,详见WCF进阶:将编码后的字节流压缩传输,本文照葫芦画瓢,实现一个可能大家更为需要的功能,将数据对称加密后传输,好处就是加密速度嗷嗷快,使用起来嗷嗷方便。 阅读全文
posted @ 2010-04-13 20:18 Robin Zhang 阅读(9283) 评论(17) 推荐(3) 编辑
摘要:   正好在园子中看到一篇博文在流模式下保持服务实例的状态的两种设计方式,细心的看了看,发现博主对WCF下流传输做了很深入的研究,但在程序的实现上颇显复杂,没有充分并且灵活的运用WCF的特性,在博主的那篇文章中要实现的目的就是将本地一个文件用流形式传递给远程,并且要求远程和本地的文件名称一致。楼主的实现中,在PerCall模式下一次调用完不成一次传输,需要在调用的过程中,用静态变量保持会话,这样显然过于复杂。其实这个实现非常简单,只需要运用MessageHeader就能轻松解决,我前面的文章WCF 进阶:为每个操作附加身份信息中也提到了,使用MessageHeader能附加用户身份信息,那么附件任何其他信息,行不行,肯定是没问题的。所以。。。。 阅读全文
posted @ 2010-04-13 19:00 Robin Zhang 阅读(5020) 评论(14) 推荐(2) 编辑
摘要:  在前面两篇文章WCF进阶:将消息正文Base64编码和WCF进阶:为每个操作附加身份信息中讲述了如何通过拦截消息的方式来记录或者修改消息,这种方式在特定条件下可以改变消息编码格式,但实现方式并不规范,而且使用范围也有限制。 WCF缺省提供了三种编码器(MessageEncoder):TextMessageEncoder,BinaryMessageEncoder,MtomMessageEncoder。事实上也是基于XML可以有三种格式:Text,Binary,MTOM,而XmlDictionaryWr 阅读全文
posted @ 2010-04-13 13:59 Robin Zhang 阅读(10905) 评论(16) 推荐(1) 编辑
摘要: 上文WCF进阶:将消息正文Base64编码中介绍了实现自定义MessageInspector来记录消息和实现自定义Formatter来改写消息,本文介绍一下在WCF中使用SoapHeader进行验证的两种实现方法,同时再次复习自定义Inspector和自定义EndpointBehavior。 阅读全文
posted @ 2010-04-11 11:06 Robin Zhang 阅读(11283) 评论(12) 推荐(8) 编辑
摘要: 大家好,很久没有写博文了,平时也是在用WCF做着项目,但不写文,总是感觉对技术的把握不够清楚全面。同时更主要的是和大家缺少很多沟通,有愧疚感呀。好了,闲话少叙,从今天起,我将推出WCF进阶系列博文。和大家一起来继续学习WCF。欢迎板砖! 阅读全文
posted @ 2010-04-11 00:11 Robin Zhang 阅读(5188) 评论(20) 推荐(2) 编辑
摘要:对WCF比较感兴趣的朋友可能都知道,在.Net 3.5的版本的WCF中增加了Rest支持。也有很多朋友已经使用过WCF Rest,但可能对什么是Rest?为什么要Rest?以及怎么用Rest?等问题并不太了解,通过读取本文可以帮您更深入的理解和掌握WCF Rest,并深层次的了解Rest 风格的特征。 阅读全文
posted @ 2010-04-04 22:10 Robin Zhang 阅读(20024) 评论(12) 推荐(7) 编辑
摘要:WCF的承载既可以通过编码(Code)实现,也能够通过配置(Config)实现.而且使用配置,更有利于日后的维护和扩展.WCF缺省的是将全部的服务配置都写到一个config文件中去.这种方式更有利于专业的IT人员对服务进行集中式管理.在很多项目中,这种方式也能解决分工问题.但是它也有一定的弊端,比如: 一个无关紧要的service变动,就需要变动config,而对应用程序config的任何修改非常有可能导致应用程序的重启或者异常.比如在网站中,如果更改web.config会导致Session,Application等的丢失.这些情况就会影响用户的体验.本文使用自定义ServiceHost的方式,实现一个Service对应一个config文件,这样当有service发生修改的时候,管理人员就只需要更改对应的config文件。更好的实现了服务与服务之间的隔离。 阅读全文
posted @ 2008-11-02 22:42 Robin Zhang 阅读(4267) 评论(9) 推荐(0) 编辑
摘要:当ServiceContract非常多的情况下,比如要self-host hundred of service的时候,or更多的时候,每次hosting都是建立一个tcp listen.这样,host的init工作会占用非常多的时间和资源。对于一些对start有较快需求的case,这明显会影响用户体验。本文意在寻求一种技术手段解决这个问题,让service只有在运行时才host。我们姑且称之为host just in time吧 阅读全文
posted @ 2008-10-27 02:05 Robin Zhang 阅读(3621) 评论(10) 推荐(0) 编辑
摘要:上文中谈到了WCF截获消息有四种方式1) 路由法 2) 自定义绑定法 3)实现接口法 4) 跟踪诊断法,上篇文章总结WCF中截获消息的几种方式详细的阐述了前面两种,本文着重阐述后面两种实现方式 阅读全文
posted @ 2008-10-25 22:51 Robin Zhang 阅读(6406) 评论(7) 推荐(0) 编辑
摘要:WCF是基于消息机制的,一些功能的实现如寻址,加密等在消息中都会体现的淋漓尽致,WCF中的通道就像车间的流水线,而消息就作为这个流水线上待加工的产品。每经过一个处理位置,相应的通道都会对消息对不同的操作处理。清晰的掌握消息的加工过程对WCF的工作原理,调试跟踪,自定义扩展,性能安全都能非常好的现实意义。而要实现截获消息的目的,通常可以有以下几种办法: 1 路由截获法 2 自定义Binding法 3 实现IMessageInspector接口法 4 跟踪诊断法 四种方法,实现的难度和得到的效果不尽相同。下面逐一阐述实现方式。 阅读全文
posted @ 2008-10-24 21:43 Robin Zhang 阅读(7436) 评论(9) 推荐(2) 编辑
摘要:几天前,有朋友在QA上问有关WCF中可信赖会话(ReliableSession)的问题。今天重新梳理一下,主要目就是真正的弄清楚可信赖会话的作用,方法和现实意义。 阅读全文
posted @ 2008-10-17 19:03 Robin Zhang 阅读(5257) 评论(4) 推荐(0) 编辑
摘要: WCF从理论到实践系列文章是笔者记录学习WCF历程的一部笔记,至今已有30余篇,涉及到WCF技术绝大多数相关理论知识和丰富的实践实例。这篇索引对上述文章做了一下整理工作,以进一步熟悉掌握WCF技术 阅读全文
posted @ 2008-08-30 09:53 Robin Zhang 阅读(32953) 评论(23) 推荐(8) 编辑
摘要: 发布了[添砖加瓦]:ExtJS+WCF+LINQ打造全功能Grid一文后,得到了很多朋友的关注和支持,之后又更新了几次,导致那篇文章篇幅过长,有些朋友同时提到,这样一种编程方式,手写代码量过大,特别是extjs的代码量尤其繁重,极大的影响了对这种方式的尝试兴趣和信心。因为我也是首次学习ExtJs,在它的应用上,还不能做到得心应手的状态,因此这几天,我又对上篇文章中的实现进行了一次全面的重构。这次重构主要的目的在于: 1) 整理原来比较凌乱的代码 2) 通过封装,极大减少ExtJs代码量 3) 让客户端脚本框架extjs与wcf进行更好一些的交互 阅读全文
posted @ 2008-08-18 23:17 Robin Zhang 阅读(11437) 评论(36) 推荐(1) 编辑
摘要:新扩展的Grid将包括以下功能: 分页功能 远程排序功能 添加新纪录功能 批量删除功能 批量更新功能 2008年8月5日新增功能 1) 筛选功能 2)刷新功能 3)Excel导出功能 2008年8月9日新增功能 1) 扩展了Excel导出功能为导出当前页和导出全部两种 阅读全文
posted @ 2008-08-09 12:55 Robin Zhang 阅读(20015) 评论(135) 推荐(7) 编辑
摘要: 在WCF中有两种不同的方法可以用于创建客户端服务对象,他们分别为: 1. 代理构造法 2. 通道工厂法 本文会从实际应用的角度上,阐述两种方法的一些细节和优劣对比,希望通过学习本文,能掌握什么情况下使用什么样的方式来创建客户端服务代理对象,怎样创建客户端代理对象。本文重点在术,非道。 阅读全文
posted @ 2008-07-26 18:32 Robin Zhang 阅读(17115) 评论(33) 推荐(6) 编辑
摘要: 在前面文章ExtJs与WCF之间的跨域访问已经通过服务端代理的方式解决了ExtJs与WCF跨域访问的问题,那个方案看起来并不怎么优雅,而当我在写过用Restful方式调用WCF进行上传下载后,愕然发现原来WCF支持原生数据(Raw)的返回,这就解决了ExtJs与Wcf之间进行跨域调用中的难题:返回数据必须满足格式。下面根据ExtJs与WCF之间的跨域访问中实现的项目,通过Stream和ContentType的联合使用,返回原生数据给Extjs,从而实现跨域调用。 阅读全文
posted @ 2008-07-17 20:38 Robin Zhang 阅读(7988) 评论(13) 推荐(2) 编辑
摘要: 在前面几篇文章中,分别就WCF如何与Ajax交互,如何返回json数据给Ajax,如何为ExtJs控件提供数据,如何用Http的访问方式异步调用Restful的WCF服务,本文着重讲述如何用Restful方式调用WCFl进行文件的上传和下载。在前面的文章中,曾经写过Restful的WCF支持两种格式的请求和响应的数据格式:1)XML 2) JSON。事实上WCF不光支持上述两种格式,它还支持原生数据(Raw,来源于Carlos' blog)。这样一来,WCF的Restful方式实际上支持任意一种格式的 阅读全文
posted @ 2008-07-14 22:27 Robin Zhang 阅读(18897) 评论(36) 推荐(9) 编辑
摘要: 上周在pedramr blog上看到有人问是否能够异步调用Restful的WCF服务,下面便是具体实现异步调用Restful的WCF实现细节。通过本文的学习,有助于如下知识的掌握: 1) 如何设定WCF的Restful支持 2) 如何异步调用Restful的WCF服务 阅读全文
posted @ 2008-07-12 13:32 Robin Zhang 阅读(9894) 评论(29) 推荐(3) 编辑