WCF笔记

WCF IIS寄宿(第一次加载svc文件,通过ServiceHostFactory创建ServiceHost对service寄宿)

只有Application_BeginRequest,Application_AuthenticateRequest事件。(httpmodel实现)

在service上设置AspNetCompatibilityRequirementsMode.Allowed实现兼容模式。(httphandler实现)可以使用httpcontext等,如果使用session同时设置allowCookies=true

 

ClientBase<T>/ChannelFactory<T> 生成客户端代理 CreateChannel()创建一个连接, Close()关闭连接

TimeOutException和CommunicationException会使会话信道进入Faulted状态,无法Close()可以Abort()

 

Sessionful Channel 消息相互关联,fault会影响后续消息交换 (除BasicHttpBinding外,大部分默认sessionful channel)

最大会话信道并发数设置maxConcurrentSession=10

Datagram Channel 每次消息交换独立,不受并发制约

 

ServiceContract, DataContract, MessageContract, FaultContract

 

DataContract

DataContractSerializer(KnowType)

DataContract Surrogate(类型不匹配的序列化,实例和序列化后的xml类型不同)

 

Message

MessageBuffer 可以多次创建Message

MessageContract (那些数据作为消息头,那些数据作为消息体)

ClientMessageFormatter/DispatchMessageFormatter(DataContractSerializer/XmlSerializer)

 

消息先编码再传输

Binary, Text, MTOM

MessageEncoder(XmlDictionary)

 

ServiceDescription

 

FaultContract FaultException<T>

posted @ 2014-12-22 23:11  fannet  阅读(121)  评论(0)    收藏  举报