我正在阅读这个msdn页面,其中说并发模型默认为single:http://msdn.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.concurrencymode.aspx
是的,这个页面让人觉得每个客户端都创建了一个新实例:http://msdn.microsoft.com/en-us/magazine/cc163590.aspx (参见每次调用服务标题):
“每次调用服务是默认实例化模式。当服务类型被配置为每次调用激活时,服务实例即公共语言运行库(CLR)对象仅在客户端调用正在进行时才存在。每个客户端请求都会得到一个新的专用服务实例。”
我看错了吗?
顺便说一句,我是在一个窗口服务中托管我的WCF。
是单的还是多的?
发布于 2012-02-03 17:00:35
在CodeProject上有一个很好的解释。以下是网址:http://www.codeproject.com/Articles/89858/WCF-Concurrency-Single-Multiple-and-Reentrant-and
长话短说,它是InstanceMode和并发的结合。默认设置是将PerCall用于InstanceMode,而使用单个用于并发。净效果:
为服务请求的对象创建新实例,用于每次调用服务( (Single). PerCall)
不要将其与InstanceMode = Singleton和ConcurrencyMode = Multiple Re入混淆,其中一个实例在多个线程上为多个请求提供服务。
发布于 2012-02-03 17:05:01
看本文:http://msdn.microsoft.com/en-us/library/ms731193.aspx
在PerCall实例中,并发性与此无关,因为每条消息都由新的InstanceContext处理
https://stackoverflow.com/questions/9132011
复制相似问题