2

複数の Web サービス要求を行う必要がある .NET 4.0 で c# で記述されたアプリケーションがあります。Web サービス要求の性質はさまざまですが、ほとんどは情報を要求しています。

関連するタイプはの派生物ですSystem.ServiceModel.ClientBase

接続はコードで設定され、いくつか例を挙げるとBasicHttpBindingEndpointAddress、などのタイプが使用されますCustomBinding

の派生物に対して行うことができる同時リクエストの最大数をどのように判断できますClientBaseか?

MaxConnectionsに関連するプロパティを見つけることはできませんでしたが、NetTcpBinding.MaxConnectionsConnectionManagementElement.MaxConnectionなどに出くわしましたが、これらのいずれも、利用した API と互換性がないようです。使い方がわからないか、これが利用できないか、どこを見ればよいかわかりません。

4

2 に答える 2

2

WCF は、コア ネットワークの概念を抽象化したものです。HTTP バインディングの場合、HTTP 同時接続制限などを決定する ServicePoint 構成に分類されます。

ServicePointManager.DefaultConnectionLimitHTTP に必要なもの:

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

構成ファイルを介してこれを行うこともできます。

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

于 2014-01-23T20:05:34.247 に答える
-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: ServiceThrottlingBehavior を WCF サービスに追加するにはどうすればよいですか?

于 2014-01-23T19:48:52.640 に答える