WCF
liujf
用行动证明一切
展开
-
WCF笔记(1)初识WCF简单应用
一、建立一个服务端项目1、添加“System.ServiceModel”引用。2、定义服务协定 [ServiceContract(Name="MyService")] public interface IService { [OperationContract] string TestMethod();原创 2013-03-08 22:20:17 · 795 阅读 · 0 评论 -
WCF笔记(2)数据协定
一、使用数据协定的好处:1、使用数据协定可以灵活控制哪些成员应该被客户端识别。2、隐藏真实身份(给类或成员取别名)二、代码示例1、服务端定义实现数据协定的类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading原创 2013-03-13 21:42:43 · 892 阅读 · 0 评论 -
WCF笔记(3)发送和接收SOAP(消息)头
一、定义消息头是附加信息,那有啥用呢?你可别说,有时候还真有不少用处。举个例子,WCF的身份验证是不是很麻烦?还要颁发什么证书的(当然不是荣誉证书),如果只是验证一个客户端的身份,如用户名什么的,那么,在调用服务方法时,动态加入一些消息头,到了服务器端就获取并验证消息头。这样一来,是不是也实现身份验证?如何传递消息头?当然是客户端发送,服务器端接收的情况较多了二、示例代原创 2013-03-14 10:13:24 · 5366 阅读 · 0 评论 -
WCF笔记(6)消息拦截与篡改
要对SOAP消息进行拦截和修改,我们需要实现两个接口,它们都位于System.ServiceModel.Dispatcher (程序集System.ServiceModel)。下面分别价绍。接口一:IClientMessageInspector从名字中我们可以猜测,它是用来拦截客户消息的,而看看它的方法,你就更加肯定当初的猜测了。BeforeSendRequest:向服务器原创 2013-03-24 16:23:15 · 3948 阅读 · 2 评论 -
WCF笔记(7)会话(Session)
在标题中我加了一个大家都很熟悉的单词——Session,熟吧?玩过Web开发的朋友肯定在梦中都会见到她。在Web中为什么要会话呢?毕竟每个用户在一个Web应用中可能不止进行一次操作,比如,某二手飞机交易网站,用户A登陆后,可能他会修改他的个人信息,他也有可能看好了一架二手飞机,打算入手,就把商品放到他的“购物车”中,这些过程中,都会产生许多与用户A相关的数据,这些数据只是对A有效,而当用户原创 2013-03-28 22:05:36 · 910 阅读 · 0 评论 -
WCF笔记(8)服务回调
服务器端回调有啥用呢?比如:向服务器上传了一个文件,但是,为了节约空间或出于其他目的,服务器要对刚上传的文件进行处理(压缩或者多媒体文件转码),这些操作无法马上向客户端回复,而客户端也不可能就停在这里一直在等。我们希望,在客户端上传文件后马上返回,而服务器对文件处理完成后再通知一下客户端。这样就引出一个东东——回调,E文叫Call Back。我估计用E文表述可能更好理解原创 2013-03-30 11:26:51 · 2671 阅读 · 0 评论 -
WCF笔记(5)流模式与文件传输
开启流模式,主要是设置一个叫TransferMode的属性,所以,你看看哪些Binding的派生类有这个属性就可以了。TransferMode其实是一个举枚,看看它的几个有效值:Buffered:缓冲模式,说白了就是在内存中缓冲,一次调用就把整个消息读/写完,也就是我们最常用的方式,就是普通的操作协定的调用方式;StreamedRequest:只是在请求的时候使用流,说简单一点就是原创 2013-03-19 21:32:38 · 2302 阅读 · 1 评论 -
WCF笔记(9)群聊程序
今天,我们来做一个可以群聊的应用,就像QQ群那样,一个服务器端,N个客户端,服务器端运行后,每个客户端启动的时候会自动连接服务器生成会话,只要其中任一个客户端向服务器发送消息,服务器都会将消息群发到所有客户端。用到的知识点:在进程中承载WCF服务。会话的使用。回调。1、还是先从服务端开始 /// /// 1、定义回调接口 /// p原创 2013-03-31 17:47:38 · 1228 阅读 · 0 评论 -
WCF笔记(4)消息协定
一、消息协定和数据协定的定义方式相同,为类添加消息协定特性(MessageContract),这样我们就可以定义一个消息协定类了二、示例代码 /// /// 数据协定类(艺术品信息) /// [DataContract] public class ArtInfo { /// /// 艺术品名称原创 2013-03-16 09:12:51 · 966 阅读 · 0 评论