WCF-处理来自多个客户端的请求
我的WCF服务库作为Windows服务托管,应该处理来自多个客户端的请求。 客户机将经常提出的一个请求是资源密集型的 我对上述情景有两个疑问:WCF-处理来自多个客户端的请求,wcf,clients,Wcf,Clients,我的WCF服务库作为Windows服务托管,应该处理来自多个客户端的请求。 客户机将经常提出的一个请求是资源密集型的 我对上述情景有两个疑问: WCF服务如何处理多个客户端的请求 是否有任何WCF配置使流程高效 谢谢大家! 在您的默认场景中,WCF服务主机(托管您的服务类的东西)将为传入的每个请求创建一个新的服务类实例,并让该实例处理请求(“每次调用”激活) 您可以使用服务器上的servicetrottling行为调整并发活动服务类实例的最大数量 <system.serviceModel&
谢谢大家! 在您的默认场景中,WCF服务主机(托管您的服务类的东西)将为传入的每个请求创建一个新的服务类实例,并让该实例处理请求(“每次调用”激活) 您可以使用服务器上的
servicetrottling
行为调整并发活动服务类实例的最大数量
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="ThrottledServiceBehavior">
<serviceThrottling
maxConcurrentCalls="25"
maxConcurrentSessions="25"
maxConcurrentInstances="25"/>
</behavior>
</serviceBehaviors>
</behaviors>
InstanceContextMode
应该是PerCall
(每个调用请求都会得到一个新的、单独的实例),然后ConcurrencyMode
可以是单个(这是最容易开发的)
InstanceContextMode
也可以是PerSession
,如果您需要基于会话的方法(不太常见),或者Single
(您的服务类将是singleton,非常不鼓励使用此模式,除非您绝对、积极地必须了解它的所有怪癖和问题!)
ConcurrencyMode
也可以是可重入的
(仅与双工合约和绑定相关)或多个
(多线程单例服务类-高风险且难以开发!)
马克
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall,
ConcurrencyMode=ConcurrencyMode.Single)]
class YourServiceClass : IYourService
{
.....
}