随笔分类 - WCF
摘要:WCF(Windows Communication Foundation) - WCF 4.0 新特性:简化配置(Simplified configuration) - 根据 baseAddresses 生成默认 endpoint;在应用程序的级别上指定默认的 Binding 配置和 Behavior 配置;不需要 .svc 的物理文件,而直接在 IIS 上托管 WCF 服务;标准终结点(Standard Endpoint) - 内置了 8 个已经定义好相关配置的标准终结点(分别为 mexEndpoint, announcementEndpoint, discoveryEndpoint, udpAnnouncementEndpoint, udpDiscoveryEndpoint, workflowControlEndpoint, webHttpEndpoint, webScriptEndpoint);通过标准终结点中的 webScriptEndpoint 来提供 ajax 服务;对 REST 服务支持的增强;对路由服务,工作流服务,字节流编码,非破坏性队列接收,服务发现的支持
阅读全文
摘要:WCF (Windows Communication Foundation) :契约, 绑定, 宿主, 异常处理, 异步调用, 双向通讯, MTOM, 流数据传输, 序列化, 实例模型, 会话状态, 并发, 限流, 事务, 安全, 可靠性消息, 消息队列, WCF创建REST, AJAX调用WCF
阅读全文
摘要:WCF(Windows Communication Foundation) - Web编程模型:使用WCF创建REST服务,使用asp.net ajax调用WCF服务
System.ServiceModel.Activation.WebServiceHostFactory - 用于承载使用 WCF Web 编程模型的服务
System.ServiceModel.Activation.WebScriptServiceHostFactory - 能够向服务中自动添加 ASP.NET AJAX 终结点而无需进行配置
阅读全文
摘要:WCF(Windows Communication Foundation) - 安全(Security):本文以用户名和密码做验证,通过X.509证书做加密为例
阅读全文
摘要:WCF(Windows Communication Foundation) - 消息队列(MSMQ - MicroSoft Message Queue):
netMsmqBinding的binding属性配置如下:
ExactlyOnce - 确保消息只被投递一次
Durable - 消息是否需要持久化
TimeToLive - 消息过期并且从原有的队列移动到死信队列的时间
ReceiveRetryCount - 将消息传输到重试队列前尝试发送该消息的最大次数
MaxRetryCycles - 重试最大周期数
RetryCycleDelay - 重试周期之间的延迟
ReceiveErrorHandling - 指定如何处理错误的消息
DeadLetterQueue - 指定所使用的死信队列的类型
CustomDeadLetterQueue - 本地自定义死信队列的URI
阅读全文
摘要:WCF(Windows Communication Foundation) - 可靠性消息(ReliableMessaging):
通过重试的方法来保证消息的可靠传递,默认为8次
当配置了“有序传递”的时候,客户端和服务端会开辟缓冲区,服务端缓冲区在接到所有客户端发来的消息后,按照客户端调用的顺序排序各个消息,然后有序地调用服务端
阅读全文
摘要:WCF(Windows Communication Foundation) - 事务(Transaction):
对契约方法使用TransactionFlowAttribute声明(设置TransactionFlowOption参数),以指定服务操作的事务流策略
对服务方法是用OperationBehaviorAttribute声明(设置TransactionScopeRequired参数),以指定方法是否在事务范围(TransactionScope)内执行
配置host和client的binding节点的transactionFlow属性,以指定绑定是否支持流事务
阅读全文
摘要:WCF(Windows Communication Foundation) - 并发控制:以ConcurrencyMode.Multiple并发模式及InstanceContextMode.Single实例模型为例(此时有并发问题),介绍如何做并发控制,即各种锁的使用(Mutex, Semaphore, Monitor, Lock, ThreadPool, Interlocked, ReaderWriterLock)
阅读全文
摘要:WCF(Windows Communication Foundation) - 并发(Concurrent):
ConcurrencyMode.Single:单线程并发模式。系统自动加锁,无并发问题
ConcurrencyMode.Reentrant:可重入的单线程并发模式。有可重入(回调)操作时,此模式才会生效,从回调返回的线程会进入队列尾部排队
ConcurrencyMode.Multiple:多线程并发模式。系统不会自动加锁,有并发问题
WCF(Windows Communication Foundation) - 限流(Throttle):
maxConcurrentCalls - 服务中同时存在的最大活动消息数,默认值为 16
maxConcurrentInstances - 服务中同时存在的最大服务实例数,默认值为 Int32.MaxValue
maxConcurrentSessions - 服务中同时存在的最大会话数,默认值为 10
阅读全文
摘要:WCF(Windows Communication Foundation) - 会话状态:
ServiceContract
SessionMode.Allowed - 指定当传入绑定支持会话时,协定也支持会话(默认值)
SessionMode.Required - 指定协定需要会话绑定。如果绑定并未配置为支持会话,则将引发异常
SessionMode.NotAllowed - 指定协定永不支持启动会话的绑定
OperationContract
IsInitiating - 获取或设置一个值,该值指示方法是否实现可在服务器上启动会话(如果存在会话)的操作。
IsTerminating - 获取或设置一个值,该值指示服务操作在发送答复消息(如果存在)后,是否会导致服务器关闭会话。
阅读全文
摘要:WCF(Windows Communication Foundation) - 实例模型:
ServiceBehavior
InstanceContextMode.PerCall - 新的 System.ServiceModel.InstanceContext 对象在每次调用前创建,在调用后回收。
InstanceContextMode.PerSession - 为每个会话创建一个新的 System.ServiceModel.InstanceContext 对象。
InstanceContextMode.Single - 只有一个 System.ServiceModel.InstanceContext 对象用于所有传入呼叫,并且在调用后不回收。如果服务对象不存在,则创建一个。
阅读全文
摘要:WCF(Windows Communication Foundation) - 序列化:本文分别以DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter为例。
阅读全文
摘要:WCF(Windows Communication Foundation) - 消息处理:使用流数据传输文件,减少内存开销。
阅读全文
摘要:WCF(Windows Communication Foundation) - 消息处理:MTOM(Message Transmission Optimization Mechanism) - 消息传输优化机制。本文以web方式上传大文件为例。
阅读全文
摘要:WCF(Windows Communication Foundation) - 消息处理:通过操作契约的IsOneWay参数实现异步调用,基于Http, TCP, Named Pipe, MSMQ的双向通讯。
阅读全文
摘要:WCF(Windows Communication Foundation) - 宿主(Hosting):WCF服务可以宿主在IIS, Application, WAS, WindowsService。本文以宿主在WindowsService为例。
阅读全文
摘要:WCF(Windows Communication Foundation) - 异常处理:一般Exception的处理,FaultException和FaultException的抛出和处理,使用IErrorHandler处理异常。
阅读全文
摘要:WCF(Windows Communication Foundation) - 绑定Binding:Http以basicHttpBinding为例,Tcp以netTcpBinding为例。
阅读全文
摘要:WCF(Windows Communication Foundation) - 契约(Contract):服务契约(ServiceContract),操作契约(OperationContract),数据契约(DataContract),服务已知类型(ServiceKnownType),数据成员(DataMember)。
阅读全文
摘要:WCF(Windows Communication Foundation) - 废话不多说,俗也不能免,我也从Hello开始。
阅读全文