首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存的web服务客户端上的WCF方法调用被视为新的IIS7连接?

缓存的web服务客户端上的WCF方法调用被视为新的IIS7连接?
EN

Stack Overflow用户
提问于 2012-03-15 21:07:30
回答 2查看 253关注 0票数 0

场景是:在安装了IIS7的Windows7计算机上有一个WCF Web服务。对于Windows7的IIS7,只能建立10个连接(正如我从互联网上了解到的那样)。

此WCF Web服务具有到另一个WCF Web服务的缓存服务客户端连接。这是10个连接(受IIS7限制)中的一个缓存服务客户端吗?或者通过该缓存连接的每个方法调用都将是10个连接中的一个?

注意:虽然我已经接受了我的答案,但我对更好的答案感兴趣,如果它们真的解决了问题的一般背景(因为它更多的是一个理论上的问题),我将把它们标记为一个答案(而不是我的)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-03 15:07:46

在一些文档和测试之后,由于没有提供好的答案,我设法找出了以下内容:

10个连接限制是针对HTTP请求的。来自另一个WCF服务的每个方法调用都需要2个HTTP请求(这是WCF服务通信的方式)。如果绑定和身份验证的设置不同,则可能会有不同的想法。我没有找到缓存web服务客户端可能会有所帮助的任何信息。

其他HTTP请求(超过10个)不会被拒绝,它们实际上被缓存在IIS中。

因此,简短的答案是,方法调用是10个HTTP请求中的2个。

部分链接:http://www.jpelectron.com/sample/WWW%20and%20HTML/IIS-%20OS%20Version%20Limits.htm https://www.owasp.org/index.php/Authentication_In_IIS http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/fe1772c8-9ae3-4f6b-b05f-d9eeb683b623/

注意:虽然我已经接受了我的答案,但我对更多的信息和对这个问题的更好的答案感兴趣。

票数 0
EN

Stack Overflow用户

发布于 2012-03-17 00:24:09

如果您的应用程序是在.Net Framework3.5(不是.Net Framework4.0)上构建的,那么我猜您遇到的限制是<serviceThrottling>限制,它具有以下默认值,

代码语言:javascript
复制
maxConcurrentSessions - 10
MaxConcurrentCalls - 16
maxConcurrentInstances - 16

因此,如果您的绑定配置启用了安全或可靠会话,并且有10个并发用户(用户=处于打开状态的服务代理实例),则将达到maxConcurrentSessions限制,并且创建新会话(新的服务代理打开)的请求将排队,直到旧的代理连接关闭。您可以尝试在前端WCF服务和后端WCF服务中添加以下配置,并检查是否有帮助。

代码语言:javascript
复制
<behaviors> 
  <serviceBehaviors> 
    <behavior name="CalculatorServiceBehavior"> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
      <serviceMetadata httpGetEnabled="True"/> 
      <!-- Specify throttling behavior -->
      <serviceThrottling maxConcurrentCalls="30" 
           maxConcurrentSessions="30" /> 
           maxConcurrentInstances="30" /> 
    </behavior>
  </serviceBehaviors>
</behaviors>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9720354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档