WCF利用限流(Throttling)控制并发访问[下篇]

评论(0)浏览(211)分类:Asp.Net/C#/WCF
WCF利用限流(Throttling)控制并发访问[下篇]  通过《WCF利用限流(Throttling)控制并发访问[上篇]》 介绍,我们知道了如何通过编程和配置的方式设置相应的最大并发量,从而指导WCF的限流体系按照你设定的值对并发的服务调用请求进行限流控制。那么,在 WCF框架体系内部,整个过程是如何实现的呢?这就是本篇文章需要为你讲述的内容。实际上,整个限流控制体系,主要涉及到两个对象:信道分..

WCF利用限流(Throttling)控制并发访问[上篇]

评论(0)浏览(143)分类:Asp.Net/C#/WCF
WCF利用限流(Throttling)控制并发访问[上篇]  WCF是一个基于多线程的消息监听、接收和处理框架体系,能够同时应付来自相同或者不同 客户端的服务调用请求,并提供完善的同步机制确保状态的一致性。一方面,我们期望WCF服务端能够处理尽可能多的并发请求,但是资源的有限性决定了并发量 有一个最大值。如果WCF不控制进入消息处理系统的并发量,试图处理所有抵达的并发请求,一旦超过了这个..

ConcurrencyMode.Multiple模式下的WCF服务同步上下文对并发的影响[下篇]

评论(0)浏览(132)分类:Asp.Net/C#/WCF
ConcurrencyMode.Multiple模式下的WCF服务同步上下文对并发的影响[下篇]  在《ConcurrencyMode.Multiple模式下的WCF服务同步上下文对并发的影响[上篇]》 中,我通过一个具体的实例演示了WCF服务宿主的同步上下文对并发的影响,并简单地介绍了同步上下文是什么东东,以及同步上下文在多线程中的应用。那么, 同步上下文在WCF并发体系的内部是如何影响服务操作的执行的呢?这实际上涉及到WCF的一个话题,即线程的亲和..

WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制

评论(0)浏览(171)分类:Asp.Net/C#/WCF
WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制  对于正常的服务调用,从客户端发送到服务端的请求消息最终会被WCF服务运行时分发到相 应的封装了服务实例的InstanceContext上。而在回调场景中,我们同样将回调对象封装到InstanceContext对象,并将其封送到客 户端。当服务操作过程中执行回调操作的时候,回调消息最终也是分发到位于客户端封装回调对象的InstanceContext。从消息分发与并发..

ConcurrencyMode.Multiple模式下的WCF服务同步上下文对并发的影响[上篇]

评论(0)浏览(145)分类:Asp.Net/C#/WCF
ConcurrencyMode.Multiple模式下的WCF服务同步上下文对并发的影响[上篇]  在《WCF服务在不同实例上下文模式下具有怎样的并发表现》中,我们通过实例演示的方式讲述了基于不同实例上下文模式的并发行为。对于这个实例中的服务类型CalculatorService,读者应该还记得我们对它进行了特别的定义:通过ServiceBehaviorAttribute特性将属性将UseSynchronizationContext设 置成False。至于为何要这么做,这就是本篇文章需要..

C#如何设置标记方法等为否决的不可用

评论(0)浏览(701)分类:Asp.Net/C#/WCF
C#如何设置标记方法等为否决的不可用  C#如何标记类里面的方法或者类为否决的,不可使用。在VS IDE编辑器中使用此方法或者类时会用绿色的波浪线标记这个语句,当移动鼠标到这句代码上时,会出现[否决的]方法名,警告方法名称已过时:xxx。。。的提示信息。  此效果是使用C#的Obsolete属性实现的,这个在升级类库的方法的时候,如果改动了方法名称或者移动到了别的类或者空间下时..

WCF服务在不同实例上下文模式下具有怎样的并发表现

评论(0)浏览(120)分类:Asp.Net/C#/WCF
WCF服务在不同实例上下文模式下具有怎样的并发表现  由于WCF的并发是针对某个封装了服务实例的InstanceContext而言的,所以在不同的实例上下文模式下,会表现出不同的并发行为。接下来,我们从具体的实例上下文模式的角度来剖析WCF的并发,如果对WCF实例上下文模式和实例上下文提供机制不了解的话,请参阅《WCF技术剖析(卷1)》第9章。  在《创建一个监控程序探测WCF的并发处理机制》 一文中..

创建一个监控程序探测WCF的并发处理机制

评论(0)浏览(95)分类:Asp.Net/C#/WCF
创建一个监控程序探测WCF的并发处理机制  由于WCF的并发是针对某个封装了服务实例的InstanceContext而言的(参考《WCF并发本质》《WCF并发同步机制》),所以在不同的实例上下文模式下,会表现出不同的并发行为。接下来,我们从具体的实例上下文模式的角度来剖析WCF的并发处理机制,如果对WCF实例上下文模式和实例上下文提供机制不了解的话,请参阅《WCF技术剖析(卷1)》第9章。  ..

WCF并发同步机制

评论(0)浏览(132)分类:Asp.Net/C#/WCF
WCF并发同步机制  在《WCF并发本质》 中,我们谈到了WCF提供的三种不同的并发模式,使开发者可以根据具体的情况选择不同的并发处理的策略。对于这三种并发模式,Multiple采用的并行 的执行方式,而Single和Reentrant则是采用串行的执行方式。串行执行即同步执行,在WCF并发框架体系中,这样的同步机制是如何实现的呢?一、Concurrency.Single模式下的同步实现..

WCF并发本质

评论(0)浏览(154)分类:Asp.Net/C#/WCF
WCF并发本质  服务(Service)的本质就是提供服务消费者期望的某种功能,服务的价值体现在两个方面:服务本身的质量和寄宿服务的平台应付消费者的数量,并 发(Concurrency)的关注的是第二个要素。WCF服务寄宿于资源有限的环境中,要实现服务效用的最大化,需要考虑如何利用现有的资源实现最大的 吞吐量(Throughput)。提高吞吐量就某个寄宿的服务实例(..

asp.net如何判断是否搜索引擎访问网站

评论(0)浏览(165)分类:Asp.Net/C#/WCF
asp.net如何判断是否搜索引擎访问网站  asp.net可以通过useragent来判断是否搜索引擎来访问网站,因为不同的搜索引擎有不同的useragent信息,具体参考 搜索引擎useragent列表  下面为C#版本的源代码 /// summary /// 判断是否为搜索引擎访问 /// /summary /// param name=useragent/param /// returns/returns public bool IsSearchEngine(string useragent) ..

WCF可靠会话-原理篇(下)

评论(0)浏览(68)分类:Asp.Net/C#/WCF
WCF可靠会话-原理篇(下)  WCF可靠会话-原理篇(上)在信道层的角度剖析了WCF为了实现可靠会话在信道层进行的一系列消息交换,或者说客户端和服务端的RS信道为了实现可靠消息传输所进行一轮又一轮的握手。这一切都是基于这样一个假设:两个RS信道均可以在适当的时机向对方发送消息,或者说两个RS信道之间是一个双工的通道。  如果我们站在传输层看待这个问题,该假..

WCF可靠会话目录

评论(0)浏览(99)分类:Asp.Net/C#/WCF
WCF可靠会话目录  作为一个通信基础平台,WCF必须保证通信的可靠性。由于消息交换是WCF采用的通信手 段,通信可靠性的保障体现在确保消息的可靠传输。WCF本质上是一个消息处理框架,作为整个消息交换系统的两个终端,即发送端和接收端。换句话说,WCF 仅仅负责对消息的发送和接收,一旦消息通过WCF的信道层进入了网络,就脱离了WCF的控制范围。但是,由于网络环..

WCF可靠会话-原理篇(上)

评论(0)浏览(94)分类:Asp.Net/C#/WCF
WCF可靠会话-原理篇(上)  本系列先后通过《WCF可靠会话-实例篇》、《WCF可靠会话-概念篇》、《WCF可靠会话-协议篇(上)》和《WCF可靠会话-编程篇(上)》对WCF的可靠会话进行了详细探讨。作为本系列的最后一片,我们将深入到WCF的可靠会话体系的最底层,对实现可靠会话的实现原理进行深入剖析。如果读者仔细阅读本系列博文,相信会使读者对可靠会话的理解提升到..

WCF可靠会话-编程篇(下)

评论(0)浏览(109)分类:Asp.Net/C#/WCF
WCF可靠会话-编程篇(下)  整个可靠会话的机制是完全在信道层实现的,而整个信道层的最终缔造者就是绑定,所以可靠会话编程是围绕着绑定进行的。《WCF可靠会话-编程篇(上)》对实现可靠会话的绑定元素已经如何使用系统绑定实现可靠会话进行了介绍,下篇将和你探讨WCF可靠会话编程模型余下两个主题:自定义绑定和对消息传递的强制约束。一、为自定义绑定的可靠会话进..

WCF可靠会话-编程篇(上)

评论(0)浏览(109)分类:Asp.Net/C#/WCF
WCF可靠会话-编程篇(上)  在《WCF可靠会话-实例篇》 给出的例子中,我实际上是通过对终结点的绑定进行相应的配置让整个消息的交换过程在一个可靠会话中进行,进而实现可靠消息传输的目的。由于整个可靠会话的 机制是完全在信道层实现的,而整个信道层的最终缔造者就是绑定,所以可靠会话编程是围绕着绑定进行的。而从结构组成的角度讲,绑定本质上就是一组绑定元素 ..

WCF可靠会话-协议篇(上)

评论(0)浏览(79)分类:Asp.Net/C#/WCF
WCF可靠会话-协议篇(上)  在《WCF可靠会话-实例篇》中,我通过可靠会话实现了对图片的可靠、有序的传输;在《WCF可靠会话-概念篇》中,我们对可靠消息涉及到的可靠消息传输(RM)的相关概念进行了讲述。在WS-*大家庭中,WS-RM为可靠消息传输提供了一个一个规范,使互操作成为可能。在《协议篇》中,我们侧重对WS-RM的介绍。  WS- RM,为WS-Reliable Messaging的简..

WCF可靠会话-协议篇(下)

评论(0)浏览(107)分类:Asp.Net/C#/WCF
WCF可靠会话-协议篇(下)  在《WCF可靠会话-协议篇(上)》中,我们认识了从序列创建到终止过程中消息交换的大致流程。接下来,我们进一步将关注点聚焦到单个小消息上,看看在整个基于序列的上下文中,不同类型的消息具有怎样的结构。首先从序列的创建开始。一、CreateSequence 和CreateSequenceReponse  基于WS-RM的可靠消息传输从序列的创建开始。为了创建序列,..

WCF可靠会话-概念篇

评论(0)浏览(71)分类:Asp.Net/C#/WCF
WCF可靠会话-概念篇  在《WCF可靠会话-实例篇》 中,我通过可靠会话成功地进行了美女图片的传输,相信大家在保了眼福之余,会对WCF的可靠会话的功用具有一个深刻的认识。实际上,这涉及到WS中一个重 要的概念可靠消息传输(RM:Reliable Messaging)。如果想对可靠会话有一个深入的认识,对可靠消息传输的了解是必须的。一、可靠消息传输(Reliable Messaging)..

WCF可靠会话-实例篇

评论(0)浏览(125)分类:Asp.Net/C#/WCF
WCF可靠会话-实例篇  作为一个通信基础平台,WCF必须保证通信的可靠性。由于消息交换是WCF采用的通信手段,通信可靠性的保障体现在确保消息的可靠传输。WCF本质 上是一个消息处理框架,作为整个消息交换系统的两个终端,即发送端和接收端。换句话说,WCF仅仅负责对消息的发送和接收,一旦消息通过WCF的信道层进 入了网络,就脱离了WCF的控制范围。但是,由于网络环..

MSIL Instruction Table对照表

评论(0)浏览(103)分类:Asp.Net/C#/WCF
MSIL Instruction Table对照表Throughout this text, I've often employed the ILDASM utility to illustrate the Microsoft intermediate language (MSIL) that the C# compiler generates. I used ILDASM to give you a more complete understanding of the lower-level workings of the C# compiler. Although I briefly explain what each MSIL instruction does in ..

C# 3.x新特性-Object Initializer & Collection Initializer

评论(0)浏览(87)分类:Asp.Net/C#/WCF
C# 3.x新特性-Object Initializer & Collection Initializer一、 为什么要引入Object Initializer 和 Collection Initializer  在创建一个具有较多属性的对象时,我们一定经常遇到这样的状况:为了尽量地使我们的Code更加简洁,我们试图调用一个适合的Constructor使得对象在创建过程中就可以为所需的属性进行初始化,但是往往我们找不到这样完美的Constructor都能够匹配我们需要进行初始化的属性列表。于..

C# 3.x新特性-Automatically Impemented Property

评论(0)浏览(82)分类:Asp.Net/C#/WCF
C# 3.x新特性-Automatically Impemented Property  Automatically Implemented Property。一、繁琐的private field + public property Definition  相信大家大家已经习惯通过一个private field + public property的发式来定义和实现一个public Property。就像下面一个Artech.AutoImpProperty. Point。namespace Artech.AutoImpProperty{ public class Point { private double ..

C# 3.x新特性-Lambda Expression

评论(0)浏览(69)分类:Asp.Net/C#/WCF
C# 3.x新特性-Lambda Expression  较之前一个版本,对于C# 3.x和VB 9来说,LINQ是最具吸引力的。基本上很多的新的特性都是围绕着LINQ的实现来设计的。借助Extension Method,我们可以为LINQ定义一系列的Operator。通过Lambda Expression我们可以为LINQ编写更加简洁的查询。我们可以说这些新的特性成就了LINQ,也可以说这些新特性就是为了实现LINQ而产生,但是我们应该明白,对..

C# 3.x新特性-Extension Method[下篇]

评论(0)浏览(63)分类:Asp.Net/C#/WCF
C# 3.x新特性-Extension Method[下篇]四、Extension Method的本质  通过上面一节的介绍,我们知道了在C#中如何去定义一个Extension Method:它是定义在一个Static class中的、第一个Parameter标记为this关键字的Static Method。在这一节中,我们来进一步认识Extension Method。  和C# 3.0的其他新特性相似,Extension Method仅仅是C#这种.NET Programming Language的新特性而已。..

C# 3.x新特性-Extension Method[上篇]

评论(0)浏览(79)分类:Asp.Net/C#/WCF
C# 3.x新特性-Extension Method[上篇]  在C#3.0中,引入了一些列新的特性,比如: Implicitly typed local variable, Extension method,Lambda expression, Object initializer, Anonymous type, Implicitly typed array, Query expression, Expression tree. 个人觉得在这一系列新特性的,最具创新意义的还是Extension method,它从根本上解决了这样的问题:在保持现有Type原封不..

C# 3.x新特性-Anonymous Type

评论(0)浏览(65)分类:Asp.Net/C#/WCF
C# 3.x新特性-Anonymous Type  在C#3.0中,引入了一个新的Feature:Anonymous Method, 允许我们已Inline的方式来定义Delegate,为Developer在Coding的时候带来了很大的便利。在C#3.0中,我们又有了另一个相 似的Feature:Anonymous Type。Anonymous Type允许我们已Inline的方式的创建一个基于未知类型、具有所需数据结构的对象。 一、Anonymous Type Overview   在传统..

type在C#托管堆中是什么

评论(0)浏览(102)分类:Asp.Net/C#/WCF
type在C#托管堆中是什么What is Type in managed heap?  在程序运行过程中,每个对象(object)都是对应了一块内存,这里的对象不仅仅指的是某个具体类型的实例(instance),也包括类型 (type)本身。我想大家也很清楚CLR如何为我们创建一个类型的实例(instance)的:CLR计算即将被创建的Instance的size(所 有的字段加上额外的成员所占的空间:TypeHandle和SyncB..

C# String特点详细介绍

评论(0)浏览(106)分类:Asp.Net/C#/WCF
C# String特点详细介绍String主要具有以下的两个显著的特点:String的恒定性:String一经创建,它所对应的字符序列就无法更改(当然我们的前提是托管的环境下)。String的驻留:CLR对String的创建实行驻留机制,CLR只会维护具有不同字符序列的String。换言之,在程序中使用到的具有完全相同的字符序列的String均是对应着同一个string对象,是对同一个段内存的引用。值..

如何高效地使用C# string

评论(0)浏览(102)分类:Asp.Net/C#/WCF
如何高效地使用C# string  无论你所使用的是哪种编程语言,我们都不得不承认这样一个共识:string是我们使用最为频繁的一种对象。但是string的常用性并不意味着它的简单性,而且我认为,正是由于 string的频繁使用才会促使其设计人员在string的设计上花大量的功夫。所以正是这种你天天见面的string,蕴含了很多精妙的设计思想。  一个月以前我写了一篇讨论字符串的驻..