化零为整WCF系列文章索引-阿里云开发者社区

开发者社区> 技术小胖子> 正文

化零为整WCF系列文章索引

简介:
+关注继续查看
[源码下载]


化零为整WCF系列文章索引


作者:webabcd


介绍
WCF (Windows Communication Foundation) :契约, 绑定, 宿主, 异常处理, 异步调用, 双向通讯, MTOM, 流数据传输, 序列化, 实例模型, 会话状态, 并发, 限流, 事务, 安全, 可靠性消息, 消息队列, WCF创建REST, AJAX调用WCF


1、化零为整WCF(1) - 不能免俗,我也从Hello开始
介绍
废话不多说,俗也不能免,我也从Hello开始。
  
2、化零为整WCF(2) - 契约Contract(ServiceContract、OperationContract、DataContract、ServiceKnownType和DataMember)
介绍
服务契约(ServiceContract),操作契约(OperationContract),数据契约(DataContract),服务已知类型(ServiceKnownType),数据成员(DataMember)。

3、化零为整WCF(3) - 绑定Binding(basicHttpBinding和netTcpBinding)
介绍
Http以basicHttpBinding为例,Tcp以netTcpBinding为例。

4、化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
介绍
一般Exception的处理,FaultException和FaultException的抛出和处理,使用IErrorHandler处理异常。

5、化零为整WCF(5) - 宿主Hosting(宿主在IIS, Application, WAS, WindowsService)
介绍
WCF服务可以宿主在IIS, Application, WAS, WindowsService。本文以宿主在WindowsService为例。

6、化零为整WCF(6) - 消息处理(异步调用OneWay, 双向通讯Duplex)
介绍
通过操作契约的IsOneWay参数实现异步调用,基于Http, TCP, Named Pipe, MSMQ的双向通讯。

7、化零为整WCF(7) - 消息处理(使用消息传输优化机制 - MTOM)
介绍
MTOM(Message Transmission Optimization Mechanism) - 消息传输优化机制。本文以web方式上传大文件为例。

8、化零为整WCF(8) - 消息处理(使用流数据传输文件)
介绍
使用流数据传输文件,减少内存开销。

9、化零为整WCF(9) - 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)
介绍
本文分别以DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter为例。

10、化零为整WCF(10) - 实例模型(InstanceContextMode)
介绍
ServiceBehavior 
InstanceContextMode.PerCall - 新的 System.ServiceModel.InstanceContext 对象在每次调用前创建,在调用后回收。 
InstanceContextMode.PerSession - 为每个会话创建一个新的 System.ServiceModel.InstanceContext 对象。 
InstanceContextMode.Single - 只有一个 System.ServiceModel.InstanceContext 对象用于所有传入呼叫,并且在调用后不回收。如果服务对象不存在,则创建一个。

11、化零为整WCF(11) - 会话状态(Session)
介绍
ServiceContract 
SessionMode.Allowed - 指定当传入绑定支持会话时,协定也支持会话(默认值) 
SessionMode.Required - 指定协定需要会话绑定。如果绑定并未配置为支持会话,则将引发异常 
SessionMode.NotAllowed - 指定协定永不支持启动会话的绑定 
OperationContract 
IsInitiating - 获取或设置一个值,该值指示方法是否实现可在服务器上启动会话(如果存在会话)的操作。 
IsTerminating - 获取或设置一个值,该值指示服务操作在发送答复消息(如果存在)后,是否会导致服务器关闭会话。

12、化零为整WCF(12) - 并发和限流(Concurrent和Throttle)
介绍
ConcurrencyMode.Single:单线程并发模式。系统自动加锁,无并发问题 
ConcurrencyMode.Reentrant:可重入的单线程并发模式。有可重入(回调)操作时,此模式才会生效,从回调返回的线程会进入队列尾部排队 
ConcurrencyMode.Multiple:多线程并发模式。系统不会自动加锁,有并发问题 
WCF(Windows Communication Foundation) - 限流(Throttle): 
maxConcurrentCalls - 服务中同时存在的最大活动消息数,默认值为 16 
maxConcurrentInstances - 服务中同时存在的最大服务实例数,默认值为 Int32.MaxValue 
maxConcurrentSessions - 服务中同时存在的最大会话数,默认值为 10

13、化零为整WCF(13) - 并发控制(锁)(Mutex, Semaphore, Monitor, Lock, ThreadPool, Interlocked, ReaderWriterLock)
介绍
以ConcurrencyMode.Multiple并发模式及InstanceContextMode.Single实例模型为例(此时有并发问题),介绍如何做并发控制,即各种锁的使用(Mutex, Semaphore, Monitor, Lock, ThreadPool, Interlocked, ReaderWriterLock)

14、化零为整WCF(14) - 事务(Transaction)
介绍
对契约方法使用TransactionFlowAttribute声明(设置TransactionFlowOption参数),以指定服务操作的事务流策略 
对服务方法是用OperationBehaviorAttribute声明(设置TransactionScopeRequired参数),以指定方法是否在事务范围(TransactionScope)内执行 
配置host和client的binding节点的transactionFlow属性,以指定绑定是否支持流事务

15、化零为整WCF(15) - 可靠性消息(ReliableMessaging)
介绍
通过重试的方法来保证消息的可靠传递,默认为8次 
当配置了“有序传递”的时候,客户端和服务端会开辟缓冲区,服务端缓冲区在接到所有客户端发来的消息后,按照客户端调用的顺序排序各个消息,然后有序地调用服务端

16、化零为整WCF(16) - 消息队列(MSMQ - MicroSoft Message Queue)
介绍
netMsmqBinding的binding属性配置如下: 
ExactlyOnce - 确保消息只被投递一次 
Durable - 消息是否需要持久化 
TimeToLive - 消息过期并且从原有的队列移动到死信队列的时间 
ReceiveRetryCount - 将消息传输到重试队列前尝试发送该消息的最大次数 
MaxRetryCycles - 重试最大周期数 
RetryCycleDelay - 重试周期之间的延迟 
ReceiveErrorHandling - 指定如何处理错误的消息 
DeadLetterQueue - 指定所使用的死信队列的类型 
CustomDeadLetterQueue - 本地自定义死信队列的URI  

17、化零为整WCF(17) - 安全(Security)
介绍
本文以用户名和密码做验证,通过X.509证书做加密为例

18、化零为整WCF(18) - Web编程模型(WCF创建REST, AJAX调用WCF)
介绍
使用WCF创建REST服务,使用asp.net ajax调用WCF服务 
System.ServiceModel.Activation.WebServiceHostFactory - 用于承载使用 WCF Web 编程模型的服务 
System.ServiceModel.Activation.WebScriptServiceHostFactory - 能够向服务中自动添加 ASP.NET AJAX 终结点而无需进行配置


OK

[源码下载]





     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/343999,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
用ASP.NET Core 2.1 建立规范的 REST API 系列文章索引
预备知识:  http://www.cnblogs.com/cgzl/p/9010978.html http://www.cnblogs.com/cgzl/p/9019314.html 建立成熟度2级的 API请看这里: https://www.
1262 0
博客园REST系列文章索引
最近在学习wcf和Rest,把博客园相关的文章做一整理,也是自己对wcf,Rest越来越深入的总结,大家在找资料时可以更方便 HttpClient + ASP.NET Web API, WCF之外的另一个选择 使用微软的新框架WebApi 对REST架构 风格下WCF的一点补充 这篇文章的特点在我看来是提供了自定义客户端数据对rest服务端调用的实例,即使用webclient 发送自定义的数据到rest服务服务端。
1130 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10882 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11816 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7458 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4497 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载