加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – WCF请求处理线程敏捷吗?

发布时间:2020-12-16 09:57:30 所属栏目:asp.Net 来源:网络整理
导读:我看过很多关于Agile Asp.Net请求处理方式的文档?我想知道与WCF请求处理相同的情况.我们可以依赖启动Wcf请求处理的线程完成它的事实吗? 我正在维护一个Wcf应用程序,在许多地方使用ThreadStatic变量.虽然代码工作但是可靠吗?是否值得改变它,还是应该保持原
我看过很多关于Agile Asp.Net请求处理方式的文档?我想知道与WCF请求处理相同的情况.我们可以依赖启动Wcf请求处理的线程完成它的事实吗?

我正在维护一个Wcf应用程序,在许多地方使用ThreadStatic变量.虽然代码工作但是可靠吗?是否值得改变它,还是应该保持原样?

解决方法

在创建WCF服务时,您可以通过使用ServiceBehavior属性修饰服务实现类来设置线程和服务实例化行为:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]
class SingleCachingHttpFetcher:IHttpFetcher

上面的代码片段来自http://msdn.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.concurrencymode.aspx

编辑
我做了一点研究,发现这篇文章:http://blogs.microsoft.co.il/blogs/applisec/archive/2009/11/23/wcf-thread-affinity-and-synchronization.aspx.它基本上说不,你不能确定启动请求的同一个线程将是完成它的那个.

编辑2
这个问题之前已经在StackOverflow讨论过了.它链接到How to make a WCF service STA (single-threaded),其中描述了如何创建一个强制单线程单元的OperationBehavior.该示例涉及调用GUI组件,但它也适用于其他单线程要求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读