随笔分类 -  WCF

学习笔记
摘要:----------------------------------------------------wcf事务:1.ACID:原子性、一致性、隔离性、持久性;2.事务:添加命名空间(using System.Transactions;)using (TransactionScope ts = new TransactionScope()) { //操作 ts.Complete(); }--支持事务流的绑定:NetNamedPipeBinding,nettcpbinding,wshttpbinding,--在绑定的配置文件;缺省为false;--通过代码打开事务流: NetTcpBindin 阅读全文
posted @ 2013-11-17 16:01 aiaito 阅读(203) 评论(0) 推荐(0)
摘要:---------------------------------------------------------------------------------------并发性课程:1.多个线程同时访问相同资源,将产生并发问题;single(单个)(缺省),Reentrant(可重入);2.wcf缺省会保护并发访问;3.在实体模型中,Perssion,single中特有用;4.在实现接口的服务上添加标记;[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Single)]------single:对于每个服务实例,只有一个请求处理,处理时会加锁 阅读全文
posted @ 2013-11-17 13:46 aiaito 阅读(504) 评论(0) 推荐(0)
摘要:-----------------------------------------实例模型:1.InstanceContentextMode:-------PerCall(单调):无状态,每次调用之间都是独立的,没有关系;为每个调用创建新的对象(全新的service);增加了整体吞吐量,内存开销少(服务用时创建,不用时销毁),不会产生并发;若服务对象创建需要较长时间,就要考虑放弃这种方式;声明方式:在实现接口的服务上添加标签[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]-----PerSession(系统缺省 阅读全文
posted @ 2013-11-17 10:18 aiaito 阅读(284) 评论(0) 推荐(0)
摘要:----------------------------------------------消息模式:1.request\reply(默认)2.one-way(单工)[Isoneway=true]客户端有些情况希望保证消息能正确送达;(msmq(持久性的,机子重启后依然有效)和可靠性消息(短暂的)这两种技术保证)应用:日志或发布,操作需要大量时间轮训场景,这样不需要等待;3.Duplex(回调;双工)操作必须声明为oneway;防止发生死锁;回调接口不需要声明servicecontracttcp和命名管道支持双工,http不支持;--duplex案例:--------------------- 阅读全文
posted @ 2013-11-17 10:16 aiaito 阅读(211) 评论(0) 推荐(0)
摘要:----------------------------Binding绑定:定义:绑定表示通讯信道的配置;定义了客户端与服务端之间的协议;---传输协议:http.tcp.命名管道.msmq,自定义(udp,smtp)---消息编码:Text.Mtom,Binary,自定义编码;---标准的绑定:BasicHttpBinding(兼容soap1.1)\WSHttpBinding(兼容1.2)\NetNamedPipeBinding(进程内或同主机的调用)\NetTcpBinding(同主机或跨主机调用)\NetPeerTcpBinding(同主机或跨主机调用)\消息绑定: NetMsmqBin 阅读全文
posted @ 2013-11-16 20:17 aiaito 阅读(408) 评论(0) 推荐(0)
摘要:-----------版本控制策略;必须支持向后兼容;----就是当服务端发生改变,但客户端未更新会不会发生错误;一旦契约发布,若要契约发生变化,如何不影响客户端使用;----wsdl:契约;服务契约的变化--对客户端的影响:操作签名的增加 (无影响,默认缺省值)操作签名的删除(无影响,默认被忽略掉)增加新的操作(无影响,客户端不知道)删除操作、修改参数类型、修改返回值(报错)---数据契约的变化 对客户端的影响添加non-required 无影响;添加新的required 会报错;删除 non-required 不会报错 但会丢失;删除required 会报错;修改数据类型; 如果类型兼容, 阅读全文
posted @ 2013-11-16 16:20 aiaito 阅读(366) 评论(0) 推荐(0)
摘要:----------根据其他网友总结1.在契约接口上添加:[WebInvoke(RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.WrappedRequest)]2.在实现契约的的服务上添加标记:[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]3.配置文件: ... 阅读全文
posted @ 2013-11-16 14:14 aiaito 阅读(222) 评论(0) 推荐(0)
摘要:1.wcf契约分为:服务契约,操作契约,消息契约、数据契约-------------------服务契约:[ServiceContract( Name = "name_IUser", Namespace = "http://localhost:3232/wpf/aa")]配置元数据交换//系统内置的数据元数据交换掉的协议;-------------------操作契约:[OperationContract(Name = "name_GetName", Action = "http://localhost:3232/wpf/a 阅读全文
posted @ 2013-11-03 23:11 aiaito 阅读(251) 评论(0) 推荐(0)
摘要:------------------------windowform承载服务步骤:(1)定义契约:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace IWpf{ [ServiceContract] public interface IUser { [OperationContract] string GetName(); [OperationContract] int GetAge(); }}(2)承载契约;us 阅读全文
posted @ 2013-07-23 20:15 aiaito 阅读(409) 评论(0) 推荐(0)