
[05] WCF
机器人
喜欢编程,喜欢篮球
展开
-
WCF 实例 —— Android 短信助手 (WCF + Android) (2)
[Android端源码下载] [WCF源码下载]前面一篇重点介绍了服务端的代码,接下来说明下Android客户端的代码,先上张图,客户端的功能组合一目了然。1) 准备:android里对于应用的权限控制有着严格的限制,因此根据不同的使用目的,需要在 AndroidManifest.xml 里添加用户权限(uses-permission)。在这个应用里使用了Internet访问,读取短信,发送短信,原创 2011-05-25 00:16:00 · 11901 阅读 · 12 评论 -
WCF4.0 —— Routing Service 自定义Filter控制访问权限
接着上一篇的实例,我们通过Routing Service使用了 filterType="EndpointName" 来转发客户端的请求,映射到内部多个服务上。但问题又来了,比如有2个内部服务A,B。有N个客户端,并不是所有的客户端同时都有对A,B的访问权限,有些客户端可以访问A,有些客户端可以访问B,如何控制客户端请求的权限呢?了解WCF认证机制的童鞋们大多数会想到通过服务A,B自身的认证功能去屏原创 2011-10-30 21:49:45 · 5251 阅读 · 2 评论 -
WCF4.0 –- RESTful WCF Services (4) (Basic Security)
在REST架构的WCF服务中,它不像一般的WCF服务绑定,有配套的安全模式,实现起来那么简单。REST WCF服务只能在传输层加密,而一般的WCF 服务可以在消息层加密。因此 REST WCF服务启用ASP.NET兼容模式后,它的安全是由ASP.NET来保证的。本篇文章主要介绍在原创 2011-03-21 00:44:00 · 11308 阅读 · 22 评论 -
WCF4.0 –- RESTful WCF Services (3) (Raw Stream)
前面2篇blog,主要在介绍REST WCF如何通过json/xml 和客户端完成交互。 这篇文章将对REST WCF的原生(RAW)流传输进行一次实例分析。OK,还是利用 WCF REST Service Application 的工程模板,创建我们的REST WCF工程。因为原创 2011-03-19 17:18:00 · 16758 阅读 · 25 评论 -
WCF中如何修改MaxItemsInObjectGraph的限制
在WCF/WebService中,如果返回值过大,比如Array,List,DataSet等达到一定数量级的话,可能引发下面的异常:WebService代码[WebService(Namespace = "http://tempuri.org/")] [WebServiceBin原创 2010-11-24 01:04:00 · 19939 阅读 · 12 评论 -
WCF实例 —— Windows Service Host 开发,调试,制作安装包
本篇实例介绍如何使用Windows Service来寄宿 WCF服务:1. 添加 WCF Service Library 工程,这一步没什么好说的。 为了简单测试,只保留下面一个服务方法:public class Service1 : IService1{ pub原创 2011-09-09 15:27:46 · 12292 阅读 · 3 评论 -
WCF实例 —— 自定义DataService数据模型(1)
ADO.NET DataService 默认是暴露EDM数据模型(e.g. Entity Framework) 以提供一种基于OData协议的数据服务,但也支持自定义的数据模型,可以选择别的数据源来实现一个DataService。当然作为自定义的数据模型,查询需要返回实现 IQu原创 2011-07-13 01:34:29 · 6546 阅读 · 13 评论 -
WCF实例 —— 自定义DataService数据模型(3)
接着研究 WCF DataService 的实现机制。【1.用反射数据提供程序实现的DataService】【2.自定义Provider实现的DataService】原创 2011-07-22 00:43:47 · 3891 阅读 · 6 评论 -
WCF实例 —— 自定义DataService数据模型(2)
在前一篇 DataService数据模型(1) 里介绍了如何实现一个内存数据集合的 DataService,接下来研究一下如何实现更新操作。这里偷了个懒,直接让 DataModel 实现 IDataServiceUpdateProvider 接口,而 IDataServiceU原创 2011-07-14 02:03:00 · 3688 阅读 · 20 评论 -
.NET 4.0 - Winform Control - DataGridView 数据绑定(ADO.NET Data Service)
ADO.NET Data Service 是一种基于REST架构的WCF + EF + OData(协议)的服务,.NET 客户端可以像引用其他WCF服务一样,添加services reference获得很好的客户端支持。客户端代理主要由 DataServiceContext 和原创 2011-05-01 00:30:00 · 6388 阅读 · 4 评论 -
WCF4.0 —— Routing Service
现在WCF 4.0内置了路由服务——System.ServiceModel.Routing.RoutingService,可以在 System.ServiceModel.Routing.dll 中找到。比如下面的场景会使用到路由服务:只暴露一个外部公开的 Endpoint 映射到内部的多个的服务上。路由服务使用的消息筛选器提供常用消息选择功能,例如,终结点的名称、SOAP 操作或消息已发送到的地址原创 2011-10-17 01:32:19 · 6956 阅读 · 7 评论 -
【WCF】自动加载 WCF Library
在论坛里遇到一个问题:如何做一个主程序,主程序里没有任何契约和配置文件能自动Host指定的外部的WCF Library Assembly。其实Visual Studio已经提供了类似的玩意,在你创建一个WCF Library工程之后在项目属性 -> WCF Options -> 会看到一个 "Start WCF Service Host When debugging anther project原创 2011-12-28 01:39:35 · 6272 阅读 · 19 评论 -
WCF 学习总结3 -- 实例模式
通过WCF的ServiceBehaviorAttribute设定InstanceContextMode有下面的3中模式: 1. Single —— 表示所有的客户端共享一个会话(服务对象)(服务关闭时才会销毁服务对象) 2. PerCall —— 表示每次调用都会创建一个会话(服务对象)(调用完毕后就会销毁服务对象) 3. PerSession —— 表示为每个连接(每个客户端代理对象) 创建一个原创 2011-01-09 01:13:00 · 7966 阅读 · 9 评论 -
【WCF】VSTO Host WCF Web Api
最近突发奇想,在PPT运行发布一个WebApi,这样通过手机或者浏览器就能控制此PPT播放。于是尝试了下用 WCF 里的 WebServiceHost 寄宿在VSTO的对象上。因此有了下面这个类:SlideShowServiceHost.csusing System;using System.Collections.Generic;using System.Linq;using System原创 2012-06-03 16:03:29 · 7125 阅读 · 9 评论 -
WCF4.0 –- RESTful WCF Services (实例) (并发同步服务 SyncService)
最近写自动化测试时遇到一个问题: 我们在进行一个并发测试的过程中,需要所有客户端测试代码,在某个时机同步。回想所学到的,线程同步手段很多了,同一台PC上的进程间同步也可以通过Metux实现,多PC的时候怎么办。因为最近在学习REST WCF,自然想到它,用它来做个同步服务,即可以解决多线程,多进程,多PC同步,还可以支持跨语言,真是一举多得。(类似的解决方案还有PNUNIT,它是通过.Net Re原创 2011-03-24 00:45:00 · 10948 阅读 · 6 评论 -
WCF常见问题(2) -- Winform Host UI阻塞
在使用WCF的时候,用来启动服务的Host方式有:Console,WinForm,IIS,Windows Service 4种。其中Winform 作为Host的同时,通常出于某种业务需求,除了充当Host以外还有自己的UI显示与操作。在做这种应用的时候,常常会发现WCF的调用会导致UI阻塞,使得服务端的Winform无法正常操作。下面来看一个示例:服务端UI自己每1s显示一条系统时间数据,客户端原创 2011-04-23 18:16:00 · 8415 阅读 · 4 评论 -
【ASP.NET】 Web Api (.NET 4.5)
在刚刚发布的 ASP.NET MVC 4 中,有一个值得注意的新特性——Web Api,微软官方的介绍是:ASP.NET MVC 4 中包含了Web API 它能够构建HTTP服务以支撑更广泛的客户端,包括浏览器,手机和平板电脑的框架。ASP.NET Web API是非常棒的构建服务的框架,遵循REST架构风格,而且它支持的RPC模式。从 .NET 3.5 开始 WCF 已经支持用 WebHttp原创 2012-03-04 23:29:25 · 25264 阅读 · 16 评论 -
【WCF】自动加载WCF Library (IIS Host)
在之前这篇 Blog (【WCF】自动加载WCF Library) 中介绍了如何在一个desktop应用中自动加载 WCF Library 的简单实现。后来我就想到如果能部署到 IIS 上,用 IIS Host 实现不就更方便嘛。正好最近学习 ASP.NET MVC 碰到这个类:VirtualPathProvider 类 (它提供了一组方法,使 Web 应用程序可以从虚拟文件系统中检索资源。) ,原创 2012-02-21 01:38:24 · 5865 阅读 · 1 评论 -
WCF WebSocketsService (HTML5 WebSocket)
在Web应用中,HTTP协议决定了客户端和服务端连接是“短连接”,即客户端Request,服务端Response,连接断开。要想实现客户端和服务端实时通信,只能通过客户端轮询来实现。“服务端推送数据”也并不是字面上意思上的“直接推”,其实还是客户端“自己取”。在HTML5标准中新的Websocket协议可以在客户端和服务器之间无限制的连接,WebSocket 不仅更快,也更廉价,更简单。利用Web原创 2011-09-25 23:43:24 · 11253 阅读 · 18 评论 -
OAuth 学习(2) —— 自定义OAuth服务端(WCF REST数据访问控制)
上篇了解了如何调用 OAuth 授权来获取数据,本篇介绍如何开放OAuth授权,并控制服务端数据访问。[源码下载]先看一下图:这两天事太多,文章整理的断断续续OK,步入正题,这里还是要借力: DevDefined.OAuth 框架。它提供了客户端访问,服务端管理Token的基础功能。1. OAuthChannel定义了服务端用户模型,OAuth的拦截器,OAuthWebServiceHostFac原创 2011-07-31 01:22:09 · 13086 阅读 · 16 评论 -
WCF常见问题(3) -- WCF 4.0 Simple Configuration 如何修改默认Binding
WCF 4.0 引入了一些新的特性,其中 Simple Configuration 大大简化了 WCF 的配置:结合 Service Markup 和默认Binding,WCF 开发者们只要更专心于逻辑的实现。先来看看 VS2010 下创建一个 WCF Ser原创 2011-07-06 00:41:12 · 8125 阅读 · 2 评论 -
WebService 中操作 HttpRequest / HttpResponse (二)
我们可以通过 HttpContext.Current.Request/Response 将WebService 改造为更佳适合被HttpWebRequest调用的方法。先来看看下面简单的示例:[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfil原创 2011-06-22 23:20:00 · 15573 阅读 · 0 评论 -
WCF4.0 –- RESTful WCF Services (1) (入门)
WCF 很好的支持了 REST 的开发, 而 RESTful 的服务通常是架构层面上的考虑。 因为它天生就具有很好的跨平台跨语言的集成能力,几乎所有的语言和网络平台都支持 HTTP 请求,无需去实现复杂的客户端代理,无需使用复杂的数据通讯方式既可以将我们的服务暴露给任何需要的人,无论他使用 VB、Ruby、JavaScript,甚至是 HTML FORM,或者直接在浏览器地址栏输入。原创 2011-03-10 00:41:00 · 23905 阅读 · 26 评论 -
WCF 学习总结8 –- WCF 事务处理
WCF在预定义绑定中实现了标准的WSAtomicTranscation(WS-AT)协议和Microsoft专有的OleTx协议,这些协议可以用来在消息中加入事务状态的信息。我们可以指定将一个操作的代码放在事务范围里执行。原创 2011-02-21 00:26:00 · 7283 阅读 · 2 评论 -
Remoting CallContext 实现客户端识别
最近整理一个Remoting项目, 需要识别客户端。最先想到的是WCF的MessageHeader,WebService的SoapHeader,抑或是通过消息拦截能够加入额外的信息。 调查了下发现 Remoting 实现消息拦截还比较麻烦(需要实现RealProxy等,详细看这里:http://www.cnblogs.com/idior/articles/872380.html)。 好在 Remoting 里还有个东东叫 CallContext 的东东可以封送额外的信息,调用上下文在应用程序域边界被克隆,其原创 2011-01-29 00:40:00 · 3996 阅读 · 0 评论 -
WCF 学习总结7 -- 流模式(Streaming)实现文件上传
当有大量的数据要传输时,WCF的流模式是比较好的选择,因为流模式不是全部加载到内存后传输而是一边读取一边传输消息,所以流模式改善了系统的吞吐量和响应效率。 需要注意的是当启用了流模式,以下WCF功能无法使用: (1) 无法执行消息正文的数字签名; (2) 不支持Session; (3) 不支持可靠会话。WCF中定义的Binding中支持流模式的只有: BasicHttpBinding, NetTcpBinding, NetNamingPipeBinding, WebHttpBinding 支持流模式。原创 2011-01-26 02:24:00 · 19981 阅读 · 41 评论 -
WCF 学习总结6 -- WCF参数与返回值
Message是WCF信道层提供的一个类,在Message类里,数据被标识成一个XML Information Set, 简称为InfoSet。当数据从客户端传输给服务端时,binding里指定的消息编码协议将决定包含客户端所提供数据的Message对象将以何种形式提供给服务(服务端到客户端也一样)。然而,所有标准的binding都会使用将Message对象表示成XML InfoSet的编码协议。根据预定义binding的编码协议,XML InfoSet可能会使用各种标准的XML文本编码、MTOM或者二进制原创 2011-01-19 01:33:00 · 24510 阅读 · 12 评论 -
WCF 学习总结5 -- 消息拦截实现用户名验证
WCF建立在基于消息的通信这一概念基础上。通过方法调用(Method Call)形式体现的服务访问需要转化成具体的消息,并通过相应的编码(Encoding)才能通过传输通道发送到服务端;服务操作执行的结果也只能以消息的形式才能被正常地返回到客户端。所以,消息在整个WCF体系结构中处于一个核心的地位,WCF可以看成是一个消息处理的管道,如下图所示: WCF的一个操作(以及操作的参数)被序列化为Soap协议所支持的消息(XML结构),经过服务运行层,交给Binding中所定义的消息传递层,消息传递层由通原创 2011-01-16 17:46:00 · 23509 阅读 · 21 评论 -
WCF 学习总结4 -- 用Duplex实现消息广播
WCF中定义3种消息交换模式: 1. Request/Reply; 2. One-Way; 3. Duplex。 Request/Reply 是缺省模式,即同步调用。在调用服务方法后需要等待服务的消息返回,即便该方法返回 void 类型。 One-Way 这种方式在调用方法后会立即返回。需要注意的是 One-Way 不能用在非void,或者包含 out/ref 参数的方法上,会导致抛出 InvalidOperationException 异常。 Duplex 又称为双工通信,实现起来比前两原创 2011-01-15 20:54:00 · 21969 阅读 · 15 评论 -
WCF 学习总结2 -- 配置WCF
前面一篇文章《WCF 学习总结1 -- 简单实例》一股脑儿展示了几种WCF部署方式,其中配置文件(App.config/Web.config)都是IDE自动生成,省去了我们不少功夫。现在回过头来看看IDE提供的Wcf Service Library项目模板中的默认服务端配置文件——App.config里面究竟有什么秘密。 服务端的配置文件主要是对services、bindings、behaviors的配置。在默认的App.config中,使用的是WCF Framework定义好的wsHttpBinding原创 2010-12-30 02:58:00 · 28430 阅读 · 8 评论 -
WCF4.0 –- RESTful WCF Services (2) (实现增,删,改,查)
本篇进一步通过一个实例记录如何实施一个具体的RESTful WCF服务以及客户端调用服务进行增,删,改,查。原创 2011-03-14 02:36:00 · 34421 阅读 · 68 评论 -
WCF Data Services 与 WCF RIA Services 的比较
WCF Data Services vs WCF RIA Services翻译 2011-03-17 01:53:00 · 9221 阅读 · 0 评论 -
WCF4.0 –- RESTful WCF Services (5) (缓存)
缓存是Web开发中的重要技术,当在开发RESTful服务也需要重视。合理的利用缓存可以大大提高服务的响应能力。从技术实现上,有客户端缓存和服务端缓存两大部分组成。而无论在哪边进行缓存,都需要一些数据来比较是否过期,Http协议中控制缓存的规则有:Cache-Control, ETag, Expires, Last-Modified。Expires是一种无条件缓存(通过过期时间控制),Last-Mo原创 2011-06-13 00:20:00 · 8368 阅读 · 4 评论 -
WCF 实例 —— 基于ADO.NET POCO Entity Framework的REST WCF
WCF 实例 —— 基于ADO.NET POCO Entity Framework的REST WCF原创 2011-05-28 23:55:00 · 9781 阅读 · 4 评论 -
WCF 实例 —— Android 短信助手 (WCF + Android) (1)
WCF 实例 —— Android 短信助手 (WCF + Android) (1)原创 2011-05-23 01:17:00 · 28675 阅读 · 25 评论 -
WCF4.0 -- RESTful WCF Services(创建基于SSL的服务)
如何配置一个无客户端证书的基于SSL的REST WCF服务原创 2011-04-02 19:57:00 · 9509 阅读 · 12 评论 -
REST WCF + jQuery EasyUI 应用
REST WCF + jQuery EasyUI 应用原创 2011-04-01 03:01:00 · 7568 阅读 · 4 评论 -
WebService 中操作 HttpRequest / HttpResponse (一)
REST WCF 使得我们调用Web服务时,可以通过HttpRequest的交互简单完成。那么老版的WebService能否做到呢?WebService中通过HttpContext.Current.Rquest/Response,我们一样也可以改造WebMethod。原创 2011-03-26 03:03:00 · 16065 阅读 · 4 评论 -
WCF 实例 —— 共享白板
之前看过有用WPF+WCF实现共享白板的示例(CodeProject: http://www.codeproject.com/KB/WCF/DrawMeWCF.aspx) ,最近闲来无事重复造个Winform的轮子。原创 2011-05-12 23:02:00 · 5202 阅读 · 2 评论 -
WCF 学习总结1 -- 简单实例
从VS2005推出WCF以来,WCF逐步取代了Remoting, WebService成为.NET上分布式程序的主要技术。WCF统一的模型整合了以往的 WebService、Remoting、MSMQ 等技术,让分布式开发变得更加简单,方便,快捷。 (上图选自《Programming WCF Services》) WCF基本概念(ABC): 1.地址(Address):决定服务的地址;2.绑定(Binding):决定服务的细节;3.契约(Contract):服务的定义(抽象),决定消息结构的定义。原创 2010-12-28 01:59:00 · 28218 阅读 · 25 评论