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>

浙公网安备 33010602011771号