WCF重写ServiceHost,实现独立配置文件
摘要:WCF重写ServiceHost,实现独立配置文件有时我们需要将WCF的配置文件放在单独的配置文件中,而默认情况下WCF又是在web.config或app.config中去寻找服务配置。如果我们把配置文件放在另一个config文件中,如何让WCF知道呢?答案就是重写ServiceHost。在重写中告诉WCF配置文件的路径。 public class MyServiceHost:ServiceHost { private string ConfigPath =System.AppDomain.CurrentDomain.BaseDirectory+ "MyApp.conf...
阅读全文
WCF订阅替换轮训
摘要:使用WCF订阅替换轮训之前因为某些特定岗位的人不知道是不方便还是什么的原因,所以随便做了个独立于所有系统之外的邮件审批服务,功能是那些人在邮件里给待审批单据发个“同意”就自动审批通过,大致分为3部分:第一部分每隔固定时间去邮件服务器抓一批邮件下来;第二部分分析邮件格式,如果符合就提取必须的邮件内容;第三部分提交审批流驱动进行审批。 我一直想做个移动端APP然后废掉它算了,不过似乎领导觉得这个东西还能撑下去,总之就一时半会是不可能干掉了。 所以,游戏之做还是得优化一下,这里就说说第一部分: 每隔固定时间抓取然后执行存在的问题,比如说现在是每隔十分钟抓一次,处理不怎么及时,而且即使没有新邮件...
阅读全文
WCF 服务端异常封装
摘要:WCF 服务端异常封装 通常WCF服务端异常的详细信息只有在调试环境下才暴露出来,但我目前有需求需要将一部分异常的详细信息传递到客户端,又需要保证一定的安全性。 最简单的办法当然是在服务端将异常捕获后,序列化传给客户端,但这样需要给服务段方法提供ref或out关键字支持,浪费,不漂亮,所以还是让服务器端抛出异常比较容易。 之所以一般服务端异常的细节不提倡暴露出来,主要是因为安全方面的考虑,解决这个问题可以使用自定义异常 public class TestArgumentException ...
阅读全文
wcf跨机器访问的问题
摘要:wcf跨机器访问的问题在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言!好了废话不多说了,正文如下:1、设置好wcf的服务端security mode要设置为None,如 --> 这里要注意的是bindingConfiguration="NoneSecurity",,这三个地方,一定要设好。然后是客户端中...
阅读全文
WCF入门教程(图文)VS2012
摘要:WCF入门教程(图文)VS2012 上一遍到现在已经有一段时间了,先向关注本文的各位“挨踢”同仁们道歉了。小生自认为一个ITer如果想要做的更好,就需要将自己的所学、所用积极分享出来,接收大家的指导和吐槽。网上也有很多WCF相关的教程,但也有很多看完后让人一种“不知所云”的感觉。小生计划3月到4月吧WCF系列更新完,希望大家小小支持一下! 言归正传,小生在Console Application, Windows Forms Application, Web Application以及ASP.NET MVC中都进行了调用测试,调用方法基本相似,没有特殊的地方。下面就用WCF作为服务和其他Proj
阅读全文
WCF入门教程(图文)VS2012
摘要:如何调用WCF服务】WCF入门教程(图文)VS2012上一遍到现在已经有一段时间了,先向关注本文的各位“挨踢”同仁们道歉了。小生自认为一个ITer如果想要做的更好,就需要将自己的所学、所用积极分享出来,接收大家的指导和吐槽。网上也有很多WCF相关的教程,但也有很多看完后让人一种“不知所云”的感觉。小生计划3月到4月吧WCF系列更新完,希望大家小小支持一下! 言归正传,小生在Console Application, Windows Forms Application, Web Application以及ASP.NET MVC中都进行了调用测试,调用方法基本相似,没有特殊的地方。下面就用WCF作为
阅读全文
Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?
摘要:构成ASP.NET Web API核心框架的消息处理管道既不关心请求消息来源于何处,也不需要考虑响应消息归于何方。当我们采用Web Host模式将一个ASP.NET应用作为目标Web API的宿主时,实际上是由ASP.NET管道解决了这两个问题。具体来说,ASP.NET自身的URL路由系统借助于HttpControllerHandler这个自定义的HttpHandler实现了ASP.NET管道和ASP.NET Web API管道之间的“连通”,但是在Self Host寄宿模式下,请求的监听、接收和响应又是如何实现的呢?[本文已经同步到《How ASP.NET Web API Works?》]目
阅读全文
获得WCF Client端的本地端口
摘要:获得WCF Client端的本地端口最近需要做个小功能,当WCF调用远程服务时,显示该调用的网速或流量。其中比较关键的一步就是需要获得WCF Client端的本地端口,原来以为是个简单的事情,结果查了1个多小时谷歌,硬是没找到好的法子,只有自己动手了。 首先,反编译System.ServiceModel.dll的代码,查找Socket,然后,就是一直反复的“转到定义”、“查找所有引用",最后利用反射搞定了!代码分享如下,如果大家有什么更好的方法,请告知下。 var temp = RASHelper.CreatProxy(SystemConfiger.ServerEndP...
阅读全文
WCF Restful Service的服务
摘要:构建基于WCF Restful Service的服务前言传统的Asmx服务,由于遵循SOAP协议,所以返回内容以xml方式组织。并且客户端需要添加服务端引用才能使用(虽然看到网络上已经提供了这方面的Dynamic Proxy,但是没有这种方式简便),所以给开发和部署带来了不小的麻烦。并且当服务过多的时候,生成的引用文件会很大,之前项目的一个引用文件光引用代码都有5000多行,全部在一个类中。确实不方便维护。基于以上几点,就特别研究了一下基于Restful的服务开发,当时手头有两种框架,一个是WCF Restful Service,另一个是Asp.net Web API。由于对WCF比较熟悉一些
阅读全文
内部通信服务
摘要:内部通信服务(WCF)WCF,很好,却又麻烦,很多时候不想用WCF的原因就是:用这个真麻烦...麻烦的地方,比如:一堆一堆的服务配置,散落在一个一个的folder下,更新系统时容易出错客户端除了要知道WCF Contract外,还要知道服务Provider所在位置所以想了个办法来简化这些,主要思路是:加入Internal Communication Service,简称ICS。用来插入自定义的中间层编写一个Service Locator Service,用来将WCF服务提供者信息抽取统一保存,如:url, endpoint类型,做到wcf服务提供者位置无关性完成后,WCF客户端(包括WCF服务
阅读全文
REST风格的服务
摘要:使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——Web Api入门系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html前言经过前2节的介绍,我们已经把数据访问层搭建好了,从本章开始就是Web Api部分了。在正式开始之前,再一次回顾一下Web Api的应用场景:Web Api可以与 MVC,WebForm结合使用,也可以作为一个单独的Web服务。在正式讨论Web Api的配置以及如何构造我们的URI来消费资源之前,我们必须理解Http方法与我们将要访问的资源之间的关系。举个简单的例子,我们把模型”Course”作
阅读全文
WCF 自承载
摘要:WCF 自承载 提供源码一、WCF 简单介绍Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,是一套通讯接口。现在比较流行的SOA就可以通过WCF实现。他的功能如果非要用一个词来形容恐怕只能用“强大”,“完美”来形容。融合了remoting和webservices的强大功能,还推出了WCF配置的小工具,更加方便入手和进阶。WCF 体系结构二、今天想说的1、Wcf经常需要添加新功能,需要发布新功能与修改配置文件2、需要配置的信息很有特点(基本就是service,endpoint)3、配置多了,真的很烦,而且一不小心要是写错了就
阅读全文
Wcf 双工通信的应用
摘要:Wcf 双工通信的应用概述双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交换模式使服务端回调(Callback)客户端操作成为可能。在Wcf中不是所有的绑定协议都支持回调操作,BasicHttpBinding,WSHttpBinding绑定协议不支持回调操作;NetTcpBinding和NetNamedPipeBinding绑定支持回调操作;WSDualHttpB
阅读全文
ASP.NET中使用HttpWebRequest调用WCF
摘要:ASP.NET中使用HttpWebRequest调用WCF最近项目需要和第三网站进行数据交换,第三方网站基本都是RESTfull形式的API,但是也有的是Web Service,或者.NET里面的WCF。微软鼓励大家使用WCF替代Web Service。Web Service技术介绍Web Service是一个平台独立的,松耦合的,自包含的、基于可编程的Web应用程序,可使用开发的XML数据标准来描述、发布、发现、协调和配置这些应用程序,同时用于开发分布式的互操作的应用程序。WCF技术介绍WCF是Web Service的升级版本。WCF是Windows Communication Founda
阅读全文
Restful?
摘要:为什么要Restful?为什么不Restful?本随笔不说为什么要Restful,只说为什么不Restful。首先Http是超文本转移协议而不是控制协议。通常文档中也会使用“资源”来指代超文本。Http作为一种传输协议其所面向的本体是“资源”。资源包含很多东西,可以分为结构化的和非结构化的两种。视频、声音、图片等都是非结构化的资源,区分结构化还是非结构化的关键是目标资源是否可以被通用软件容易的使用,而视频声音图片等设计为被专用软件容易使用。结构化的数据类似关系数据库定义的数据,它是易于使用的。Http的另一个本体是“转移”,Http的一整套东西都是围绕着“资源”和“转移”这两个本体来设计的,所
阅读全文
WCF从零学习之设计和实现服务协定2
摘要:WCF从零学习之设计和实现服务协定(二)在创建服务协定之前,有很多WCF术语,比如:消息、服务、终结点创建协定类或接口都可以定义服务协定,建议使用接口,因为接口可以直接对服务协定建模服务协定接口具有托管接口的所有优点:服务协定接口可以扩展任何数量的其他服务协定接口。一个类可以通过实现服务协定接口来实现任意数量的服务协定。可以通过更改接口实现来修改服务协定的实现,而让服务协定保持不变。可以通过实现旧接口和新接口来确定服务的版本。老客户端连接到原始版本,而新客户端则可以连接到比较新的版本定义服务协定:在类或接口上使用ServiceContractAttribute属性标记定义服务操作:在方法上使用
阅读全文
WCF从零学习之WCF概述(一)
摘要:WCF从零学习之WCF概述(一)一.WCF概述我先了解了分布式应用程序开发,所谓分布式应用程序是指应用程序分布在不同计算机上,通过网络来共同完成一项任务。通常为服务器/客户端模式。在WCF发布之前,我们开发使用的应用程序使用多种现有的.NET Framework技术,比如:(1)ASP.NET Web 服务(ASMX)。Web service这种技用于与基于J2EE的现有预定应用程序,以及与Internet上的合作伙伴应用程序进行通信。因为目前大多数平台都支持基本的Web服务,所以在WCF发布之前,这是实现跨供应商互操作性的最直接的方法。(2).NET Framework远程处理(.net r
阅读全文
WCF MSMQ
摘要:基于WCF MSMQ 的企业应用解决方案 最近研究了一下基于MSMQ的WCF应用,从书上、网上查了很多资料,但始终没能彻底理解WCF-MSMQ的工作原理,也没能得到一个合理的应用解决方案。索性还是自己做个实验,探索一下吧。经过反复试验,颇有收获,现跟大家分享一下。 首先我的解释一下为什么查了那么多资料却未能理解WCF-MSMQ的工作原理,不是各位大牛没有把原理讲清楚,而是大多数给出的例子都是在单机上运行的,这就很难说明白离线工作的原理。 为了说明问题,我用了四台虚机来部署我的实验程序,首先我给大家看一下我的程序部署结构: 4台虚机(红线表示消息流向),它们的操作系统都是Windows2...
阅读全文
使用WCF扩展在方法调用前初始化环境
摘要:使用WCF扩展在方法调用前初始化环境OperationInvoker 介绍OperationInvoker 是 WCF 运行时模型中在调用最终用户代码前的最后一个扩展点,OperationInvoker 负责最终调用 Service Operation,并且在 IOperationInvoker 中定义了操作调用的同步和异步模式。在 WCF 的内部,实现了同步和异步的方法调用类:System.ServiceModel.Dispatcher.SyncMethodInvokerSystem.ServiceModel.Dispatcher.AsyncMethodInvoker上述两个实现是方法调用的
阅读全文
【REST WCF】30分钟理论到实践
摘要:【REST WCF】30分钟理论到实践http://blog.vsharing.com/agiledo/先来点理论知识,来自http://www.cnblogs.com/simonchen/articles/2220838.html一.什么是Rest REST软件架构是由Roy Thomas Fielding博士2000年在他的论文《Architectural Styles and the Design of Network- based Software Architectures》首次提出的。他提出的理论对后来的Web技术的发展产生了巨大的影响,他是许多重要Web架构标准的设计者,这些标.
阅读全文