最大出站连接数

Posted

技术标签:

【中文标题】最大出站连接数【英文标题】:Max Outbound connections 【发布时间】:2014-02-14 13:45:04 【问题描述】:

我有一个在 .NET 4.0 上用 c# 编写的应用程序,它需要发出多个 Web 服务请求。 Web 服务请求在性质上有所不同,但主要是请求信息。

涉及的类型是System.ServiceModel.ClientBase的派生词

连接是在代码中设置的,并使用 BasicHttpBindingEndpointAddressCustomBinding 等类型。

如何确定ClientBase 的派生类可以发出的最大并发请求数?

我无法找到任何与 MaxConnections 相关的属性,但我确实遇到了诸如 NetTcpBinding.MaxConnections 和 ConnectionManagementElement.MaxConnection 之类的东西,但这些似乎都与我利用的 API 不兼容。要么我错过了如何使用它们,要么不可用,要么我不知道去哪里找。

【问题讨论】:

如果您找不到“最大连接数”属性,那么可能没有。你想用它做什么?增加吗? 我认为这是可能的。首先,我想知道值,看看是否存在潜在的瓶颈。我没有提出100个请求。我随时都在做3。然后如果它设置为 1 或 2,我想增加一点。我们遇到了一些性能问题。 【参考方案1】:

WCF 是对核心网络概念的抽象。对于 HTTP 绑定,它属于 ServicePoint 配置,该配置决定了您的 HTTP 并发连接限制等内容。

你想要ServicePointManager.DefaultConnectionLimit 用于 HTTP:

http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit.aspx

您也可以通过配置文件执行此操作:

http://msdn.microsoft.com/en-us/library/fb6y0fyc.aspx

【讨论】:

这很有希望,但我无法让它完全正常工作。原因是我无法将 ServicePoint 对象传递给我的其他相关对象......不过我仍在调查。 你是对的。我设置了它,但我无法确认它是否对我的情况有影响,因为我没有使用 ServicePoint 对象......也许它在后台使用但我不知道...... @Haney 非常感谢。设置此设置为我们的团队节省了很多痛苦。【参考方案2】:

这将位于服务主机的 .config 文件的绑定配置部分。根据所使用的绑定,您可以设置诸如 maxConcurrentCalls 和 maxConcurrentSessions 之类的内容,WCF 通常会对它们施加默认限制。

现实生活中的例子:

<system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ServiceBehaviorBasicHttp">
          <serviceThrottling maxConcurrentCalls="1000" maxConcurrentSessions="1000" maxConcurrentInstances="1000"/>
                    <serviceMetadata />
                </behavior>
</system.serviceModel>

或者在后面的代码中,像这样:

ServiceHost host = new ServiceHost(typeof(MyService));
ServiceThrottlingBehavior throttleBehavior = new ServiceThrottlingBehavior

    MaxConcurrentCalls = 40,
    MaxConcurrentInstances = 20,
    MaxConcurrentSessions = 20,
;
host.Description.Behaviors.Add(throttleBehavior);
host.Open();

取自这里:WCF: How do I add a ServiceThrottlingBehavior to a WCF Service?

【讨论】:

我们没有使用 .config 文件(说来话长——我无法解释),但你能弄清楚它在对象模型中的位置吗? 在代码隐藏中查看***.com/questions/794338/… -1:OP 需要此信息用于客户端,而不是服务。 恐怕约翰说的是真的。这是针对网络服务消费者的。

以上是关于最大出站连接数的主要内容,如果未能解决你的问题,请参考以下文章

Redis连接数与最大连接数

.netcoreapi最大连接数

如何查看oralcle的最大连接数

怎么查看和修改 MySQL 的最大连接数

怎么查看和修改 MySQL 的最大连接数

Oracle能支持的最大连接数是多少