我们有一个WCF
网络服务,在我们的网站上经常使用。偶尔,我们会有大量用户访问我们的网站。我不希望服务超时,如果需要,它运行超过一分钟就可以了。我还想设置可能在服务上发生的并发请求数量。
我看到有很多超时设置可以在绑定上设置 - 所有默认值都是1分钟。对于这种情况,我应该设置什么超时设置?在哪里可以设置最大并发请求数?
由于
答案 0 :(得分:3)
为了实现可伸缩的WCF Web服务,您需要配置正确的并发模式,实例化模型和服务限制设置等。
并发是指在服务实例中同时执行的线程数。默认情况下,一个线程执行,但如果客户端调用多个方法并且每个方法花费的时间超过很短的时间,则可能需要使用多个线程。
实例化是指服务实例的生命周期。您可以通过设置InstanceContextMode
属性的ServiceBehavior
属性来控制实例化。此属性有三个可能的值:
PerSession
。 WCF运行时在客户端第一次调用服务时创建新的服务对象。它使对象保持活动状态以供客户端进行后续调用。运行时会话结束时释放对象。这是此属性的默认值。PerCall
。每次客户端调用服务时,WCF运行时都会创建一个新的服务对象。它在通话后释放对象。Single
。 WCF运行时在客户端第一次调用服务时创建新的服务对象。它使对象保持活动状态以供任何客户端进行后续调用。 服务限制配置根据实例化和并发模式设置控制实例,会话和/或调用的最大数量。
<behaviors>
<serviceBehaviors>
<behavior name="Throttled">
<serviceThrottling
maxConcurrentCalls="x"
maxConcurrentSessions="x"
maxConcurrentInstances="x"
/>
以下文章可帮助您评估各种设置,并选择最适合您的方案的选项。
http://msdn.microsoft.com/en-us/library/ff183865.aspx
http://msdn.microsoft.com/en-us/library/ms731379%28v=vs.110%29.aspx
http://msdn.microsoft.com/en-us/library/vstudio/ms735114%28v=vs.100%29.aspx