WCF的知识点盘点(四)运行时Behavior介绍,服务行为 [ServiceBehavior],服务安全阈值

勇哥注:

此系列文章是梳理一下勇哥认为项目有用的WCF的知识点,读者须有WCF的开发经验。



WCF的Behavior [运行时改变wcf的行为]


wcf的behavior是wcf的服务运行时提供的功能。如下图:
image.png


常用的behavior有三类:

服务行为 [ServiceBehavior]  

    实例行为,事务行为,并发行为,限制行为

端点行为  [EndPointBehavior]

    消息检查,调度行为

操作行为  [OperationBehavior]

    参数筛选 

    


 服务行为 [ServiceBehavior]

    控制实例化,并发行为,事务行为

    默认值: Single+PerCall



(1)实例行为

客户端的三次调用,我们是每次调用new homeservice呢?

还是3次调用都是使用的同一个new出来的homeservice实例呢?(Singal单例)

image.png

(2)并发行为

指的是你的new homeService出来的实例, 是否接受多线程的调用?还是只接受一个线程的访问?

image.png

对于实例行为和并发行为,wcf的默认值:PerCall+ Single

PerCall是实例行为的方式,它指每call一次,new homeService一个实例。

Singal是并发行为的方式,它指只允许单线程访问。


PerCall+ Single: 每次call都会new一个homeservice,每个new都只接受一个线程。

         本质上,这种方式也是多线程的。因为你的call1, call2, call3是可以并发进行的。



WCF的Behavior [运行时改变wcf的行为]


常用的behavior有三类:

服务行为 [ServiceBehavior]  

    实例行为,事务行为,并发行为,限制行为

端点行为  [EndPointBehavior]

    消息检查,调度行为

操作行为  [OperationBehavior]

    参数筛选 

    



服务行为 [ServiceBehavior]

    控制实例化,并发行为,事务行为

    默认值: Single+PerCall


实例与并发行为:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall,

ConcurrencyMode=ConcurrencyMode.Single)]


InstanceContextMode取值:

PerCall, (每次访问,不同的new)

PerSession, (每次会话,new一个)

Single (每次访问,同一个new)


ConcurrencyMode取值:

Multiple

Reentrant

Single   (单线程)


下面是几种常见的组合:

1。 Single+Singal

      这一种就是串行的,安全但是性能差

2。 Single+Multi   单实例(多线程)

      这一种风险是,需要自己控制同步

     不安全,但是性能优

3。 PreCall+Single(Multi)



设置实例和消息处理的最大值


如果过大的call,会导致机器奔溃,因此需要控制访问数量的安全阈值


在构造函数中配置”安全阈值“,提前评估机器负载和处理能力

   这些配置是个死值,其实你还可以根据分钟数,cpu当前利用率来动态拒绝客户的请求,这个档次才高。


MaxConcurrentInstances

设置同一时刻服务上下文实例的最大数量

[perSession和perCall起作用],[对single不起作用]


MaxConcurrentSessions

设置同一时刻可以接受的最大会话数量。


MaxConcurrentCalls

设置serviceHost消息并发处理的最大值。

[Single和Multiple控制线程的数量][对Single也起作用]

每个实例来了,都用一个线程池线程



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-06-25 09:06:42 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864