2012年4月18日
摘要: WCF定义了哪几种消息交换模式? WCF定义了三种消息交换方式 ,分别为: One-Way Calls Request/Reply Duplex One-Way Calls 在几种消息交换模式中,one-way calls是最没良心的,对于客户端,one-way calls就如肉包子打狗,有去无回。下面的图示给出这种交换模型的特征: 在这种交换模式中,存在着如下的特征 没有返回值,返回类型只能为void 不能包含ref或者out类型的参数 只有客户端发起请求,服务端并不会对请求进行回复。 通过设置OperationContract的IsOneWay=True可以将满足要求的方法设置为这种消息交 阅读全文
posted @ 2012-04-18 09:29 武胜-阿伟 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 在WCF/WebService中,如果返回值过大,比如Array,List,DataSet等达到一定数量级的话,可能引发下面的异常1. 受信Message Quota Size超过65536 (System.ServiceModel.CommunicationException)解决方法:修改客户端配置文件app.config 的 maxReceivedMessageSize,maxBufferSize 两个属性。但是,数量级继续增大,还会遇到新的问题:2. MaxItemsInObjectGraph Quta Size超过65536(InnerException:System.Runtime 阅读全文
posted @ 2012-04-18 09:28 武胜-阿伟 阅读(2079) 评论(0) 推荐(0) 编辑
摘要: KnownTypeAttribute与ServiceKnownTypeAttribute对于已知类型,可以通过两个特殊的自定义特性进行设置:KnownTypeAttribute和 ServiceKnownTypeAttribute。KnownTypeAttribute应用于数据契约中,用于设置继承与该数据契约类型的子数据契 约类型,或者引用的其他潜在的类型。ServiceKnownTypeAttribute既可以应用于服务契约的接口和方法上,也可以应用在服务实现的类 和方法上。应用的目标元素决定了定义的已知类型的作用范围。下面的代码中,在基类OrderBase指定了子类的类型Order。 1: 阅读全文
posted @ 2012-04-18 09:26 武胜-阿伟 阅读(1178) 评论(0) 推荐(0) 编辑
摘要: WCF除了支持传统的“请求-应答”的调用模式之外还支持“单向操作”和“回调操作”两种调用模式,还可以使用流在客户端和服务器端之间传递大对象。 一、“请求-应答”模式(Request-Reply Operations): “请求-应答”模式是默认的操作模式,在此之前我们所做的例子都采用的是“请求-应答”模式进行调用的。 其调用过程是:客户端发送请求,阻塞客户端进程,服务端返回操作结果,客户端收到返回结果后继续向下执行,如果服务器没有在预期的时间内响应请求,客户端就会产生TimeoutException异常信息。 除了NetPeerTcpBinding和NetMsmqBinding两种绑定方式之外 阅读全文
posted @ 2012-04-18 09:24 武胜-阿伟 阅读(1469) 评论(0) 推荐(0) 编辑
摘要: WCF除了支持传统的“请求-应答”的调用模式之外还支持“单向操作”和“回调操作”两种调用模式,还可以使用流在客户端和服务器端之间传递大对象。 一、“请求-应答”模式(Request-Reply Operations): “请求-应答”模式是默认的操作模式,在此之前我们所做的例子都采用的是“请求-应答”模式进行调用的。 其调用过程是:客户端发送请求,阻塞客户端进程,服务端返回操作结果,客户端收到返回结果后继续向下执行,如果服务器没有在预期的时间内响应请求,客户端就会产生TimeoutException异常信息。 除了NetPeerTcpBinding和NetMsmqBinding两种绑定方式之外 阅读全文
posted @ 2012-04-18 09:23 武胜-阿伟 阅读(2633) 评论(0) 推荐(1) 编辑
摘要: 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。 内存映射文件对于托管世界的开发人员来说似乎很陌生,但它确实已经是很远古的技术了,而且在操作系统中地位相当。实际上,任何想要共享数据的通信模型都会在幕后使用它。 内存映射文件究竟是个什么?内存映射文件允许你保留一块地址空间,然后将该物理存储映射到这块内存空间中进行操作。物理存储是文件管理,而内存映射文件是操作系统级内存管理。优势: 1.访问磁盘文件上的数据不需执行I/O操作和缓存操作(当访问文件数据时,作用尤其显著); 2.让运行在同一台机器上的多个进程共享数据(单机多进程间数据通信效率 阅读全文
posted @ 2012-04-18 09:22 武胜-阿伟 阅读(30217) 评论(3) 推荐(10) 编辑
摘要: 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。例如,如果列a被定义为UNIQUE,并且包含值1,则以下 两个语句具有相同的效果:1234INSERT INTO TABLE (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; UPDATE TABLE SET c=c+1 WHERE a=1;如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受.. 阅读全文
posted @ 2012-04-18 09:20 武胜-阿伟 阅读(11046) 评论(0) 推荐(0) 编辑
摘要: 我觉得简而言之GetHashCode的作用就是:尽量用最快的时间对对象进行初步判断。当然这里时间的快慢和判断的深度没有具体要求,只要没有走极端就可以(比如太费时间,或者判断深度太浅)。因此没必要吧GetHashCode搞得太复杂!还有人错误的认为字典的存储是完全靠GetHashCode的结果,显然这是不对的,GetHashCode仅返回一个int怎能胜任所有结果呢?来看这个例子,这样一个类,他的GetHashCode返回整数数据的余2的结果。(仅为做示例,很显然这个GetHashCode的执行很有效率但是比较深度也太差了) classa { publicint Id { get; privat 阅读全文
posted @ 2012-04-18 09:04 武胜-阿伟 阅读(6380) 评论(1) 推荐(5) 编辑
摘要: MySql避免重复插入记录发布于: December 15, 2011, 6:02 pm 分类: MySQL 作者: Cyrec 阅读: [308]今天用python抓取数据入库需要避免重复数据插入,在网上找了一些方法:方案一:使用ignore关键字如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:insertignoreinto table_name(email,phone,user_id) values('test9@163.com','99999','9999'),这样当有重复记录就会忽略,执行 阅读全文
posted @ 2012-04-18 08:36 武胜-阿伟 阅读(26803) 评论(0) 推荐(2) 编辑
摘要: /// <summary> /// 移动文件 /// </summary> /// <param name="source">源目录</param> /// <param name="target">目标目录</param> private bool MoveFolderTo(string srcPath, string tgtPath) { try { //检查目标目录是否是以分割符结束,如果不是这添加 if (tgtPath[tgtPath.Length - 1] != Syst 阅读全文
posted @ 2012-04-18 08:35 武胜-阿伟 阅读(423) 评论(0) 推荐(0) 编辑
摘要: //获取类型信息//如果调用其他的DLL//System.Reflection.Assembly asmb = System.Reflection.Assembly.LoadFrom("DLL名");// Type t = asmb.GetType("类名");//如果是不调用其他DLLSystem.Type t = System.Type.GetType("类名"); try { object dObj = Activator.CreateInstance(t); //获取方法的信息 System.Reflection.Metho. 阅读全文
posted @ 2012-04-18 08:33 武胜-阿伟 阅读(3206) 评论(0) 推荐(0) 编辑