WCF入门与实践
从WCF入门开始,由浅入深,大量的WCF示例介绍。关注WCF Rest架构的发展。
机器人
喜欢编程,喜欢篮球
展开
-
【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 · 7078 阅读 · 9 评论 -
【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 · 5829 阅读 · 1 评论 -
【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 · 6225 阅读 · 19 评论 -
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 · 5198 阅读 · 2 评论 -
WCF4.0 —— Routing Service
现在WCF 4.0内置了路由服务——System.ServiceModel.Routing.RoutingService,可以在 System.ServiceModel.Routing.dll 中找到。比如下面的场景会使用到路由服务:只暴露一个外部公开的 Endpoint 映射到内部的多个的服务上。路由服务使用的消息筛选器提供常用消息选择功能,例如,终结点的名称、SOAP 操作或消息已发送到的地址原创 2011-10-17 01:32:19 · 6846 阅读 · 7 评论 -
WCF实例 —— Windows Service Host 开发,调试,制作安装包
本篇实例介绍如何使用Windows Service来寄宿 WCF服务:1. 添加 WCF Service Library 工程,这一步没什么好说的。 为了简单测试,只保留下面一个服务方法:public class Service1 : IService1{ pub原创 2011-09-09 15:27:46 · 12225 阅读 · 3 评论 -
WCF4.0 –- RESTful WCF Services (5) (缓存)
缓存是Web开发中的重要技术,当在开发RESTful服务也需要重视。合理的利用缓存可以大大提高服务的响应能力。从技术实现上,有客户端缓存和服务端缓存两大部分组成。而无论在哪边进行缓存,都需要一些数据来比较是否过期,Http协议中控制缓存的规则有:Cache-Control, ETag, Expires, Last-Modified。Expires是一种无条件缓存(通过过期时间控制),Last-Mo原创 2011-06-13 00:20:00 · 8309 阅读 · 4 评论 -
WCF 实例 —— 基于ADO.NET POCO Entity Framework的REST WCF
WCF 实例 —— 基于ADO.NET POCO Entity Framework的REST WCF原创 2011-05-28 23:55:00 · 9736 阅读 · 4 评论 -
WCF 实例 —— Android 短信助手 (WCF + Android) (2)
[Android端源码下载] [WCF源码下载]前面一篇重点介绍了服务端的代码,接下来说明下Android客户端的代码,先上张图,客户端的功能组合一目了然。1) 准备:android里对于应用的权限控制有着严格的限制,因此根据不同的使用目的,需要在 AndroidManifest.xml 里添加用户权限(uses-permission)。在这个应用里使用了Internet访问,读取短信,发送短信,原创 2011-05-25 00:16:00 · 11847 阅读 · 12 评论 -
WCF 实例 —— Android 短信助手 (WCF + Android) (1)
WCF 实例 —— Android 短信助手 (WCF + Android) (1)原创 2011-05-23 01:17:00 · 28598 阅读 · 25 评论 -
WCF 实例 —— 共享白板
之前看过有用WPF+WCF实现共享白板的示例(CodeProject: http://www.codeproject.com/KB/WCF/DrawMeWCF.aspx) ,最近闲来无事重复造个Winform的轮子。原创 2011-05-12 23:02:00 · 5151 阅读 · 2 评论 -
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 · 8330 阅读 · 4 评论 -
WCF4.0 -- RESTful WCF Services(创建基于SSL的服务)
如何配置一个无客户端证书的基于SSL的REST WCF服务原创 2011-04-02 19:57:00 · 9461 阅读 · 12 评论 -
WCF4.0 –- RESTful WCF Services (实例) (并发同步服务 SyncService)
最近写自动化测试时遇到一个问题: 我们在进行一个并发测试的过程中,需要所有客户端测试代码,在某个时机同步。回想所学到的,线程同步手段很多了,同一台PC上的进程间同步也可以通过Metux实现,多PC的时候怎么办。因为最近在学习REST WCF,自然想到它,用它来做个同步服务,即可以解决多线程,多进程,多PC同步,还可以支持跨语言,真是一举多得。(类似的解决方案还有PNUNIT,它是通过.Net Re原创 2011-03-24 00:45:00 · 10867 阅读 · 6 评论 -
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 · 16694 阅读 · 25 评论 -
WCF4.0 –- RESTful WCF Services (2) (实现增,删,改,查)
本篇进一步通过一个实例记录如何实施一个具体的RESTful WCF服务以及客户端调用服务进行增,删,改,查。原创 2011-03-14 02:36:00 · 34301 阅读 · 68 评论 -
WCF4.0 –- RESTful WCF Services (1) (入门)
WCF 很好的支持了 REST 的开发, 而 RESTful 的服务通常是架构层面上的考虑。 因为它天生就具有很好的跨平台跨语言的集成能力,几乎所有的语言和网络平台都支持 HTTP 请求,无需去实现复杂的客户端代理,无需使用复杂的数据通讯方式既可以将我们的服务暴露给任何需要的人,无论他使用 VB、Ruby、JavaScript,甚至是 HTML FORM,或者直接在浏览器地址栏输入。原创 2011-03-10 00:41:00 · 23834 阅读 · 26 评论 -
WCF 学习总结8 –- WCF 事务处理
WCF在预定义绑定中实现了标准的WSAtomicTranscation(WS-AT)协议和Microsoft专有的OleTx协议,这些协议可以用来在消息中加入事务状态的信息。我们可以指定将一个操作的代码放在事务范围里执行。原创 2011-02-21 00:26:00 · 7210 阅读 · 2 评论 -
WCF 学习总结7 -- 流模式(Streaming)实现文件上传
当有大量的数据要传输时,WCF的流模式是比较好的选择,因为流模式不是全部加载到内存后传输而是一边读取一边传输消息,所以流模式改善了系统的吞吐量和响应效率。 需要注意的是当启用了流模式,以下WCF功能无法使用: (1) 无法执行消息正文的数字签名; (2) 不支持Session; (3) 不支持可靠会话。WCF中定义的Binding中支持流模式的只有: BasicHttpBinding, NetTcpBinding, NetNamingPipeBinding, WebHttpBinding 支持流模式。原创 2011-01-26 02:24:00 · 19866 阅读 · 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 · 24337 阅读 · 12 评论 -
WCF 学习总结5 -- 消息拦截实现用户名验证
WCF建立在基于消息的通信这一概念基础上。通过方法调用(Method Call)形式体现的服务访问需要转化成具体的消息,并通过相应的编码(Encoding)才能通过传输通道发送到服务端;服务操作执行的结果也只能以消息的形式才能被正常地返回到客户端。所以,消息在整个WCF体系结构中处于一个核心的地位,WCF可以看成是一个消息处理的管道,如下图所示: WCF的一个操作(以及操作的参数)被序列化为Soap协议所支持的消息(XML结构),经过服务运行层,交给Binding中所定义的消息传递层,消息传递层由通原创 2011-01-16 17:46:00 · 23392 阅读 · 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 · 21848 阅读 · 15 评论 -
WCF 学习总结3 -- 实例模式
通过WCF的ServiceBehaviorAttribute设定InstanceContextMode有下面的3中模式: 1. Single —— 表示所有的客户端共享一个会话(服务对象)(服务关闭时才会销毁服务对象) 2. PerCall —— 表示每次调用都会创建一个会话(服务对象)(调用完毕后就会销毁服务对象) 3. PerSession —— 表示为每个连接(每个客户端代理对象) 创建一个原创 2011-01-09 01:13:00 · 7867 阅读 · 9 评论 -
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 · 28323 阅读 · 8 评论 -
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 · 28104 阅读 · 25 评论