18

BasicHTTPBinding と SSL が有効になっているコンソール アプリに WCF サービスをデプロイしています。次の属性も設定されます。

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

また、スロットリング動作を

<serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647"
        maxConcurrentInstances="2147483647" />

一方、複数のクライアントを同時に開始し (複数のスレッド)、サーバー上でトランザクションを実行するテスト クライアント (負荷テスト用) を作成しました。すべて問題ないように見えますが、サーバーでは CPU 使用率が増加しないため、ログを追加してサーバーへの同時呼び出しの数を表示したところ、6 を超えたことはありませんでした。

パフォーマンス カウンターのログ記録コードを 2 回以上確認しましたが、問題ないように思えます。

では、この状況でどこに問題があるのか​​お聞きしたいです。ContextMode や ConcurrencyMode はまだ指定していません。

この投稿の後、テストクライアントの別のインスタンスを開始するたびに、同時サーバーコールカウンターが2に増加することに気付きました.1つのインスタンスのみを実行している場合、同時受信コールの最大数は2になり、インスタンスが2つある場合は同じ値が4になります等々。一度のプロセスからの WCF 呼び出しの数に制限はありますか?

********3月17日に追加********

今日、サーバーが実行されている同じマシンで、1 つのテスト クライアント (50 人の同時ユーザー) を使用して別のテストを実行しました。今回は、表示したい正確な結果を取得しています (つまり、サーバーが受信した最大同時呼び出し数 = 50)。

しかし、他のマシンでも同じことをする必要があります。誰でもこれについて私を助けることができますか?

4

2 に答える 2

23

または、クライアントでこの構成を使用します。

<system.net>
    <connectionManagement>
      <add maxconnection = "200" address ="*" />
    </connectionManagement>
  </system.net>

ここで 200 はクライアントからの制限です

于 2011-08-19T07:59:40.797 に答える
19

解決策を見つけました。この問題を引き起こしている ServicePointManager の接続制限があります。この制限を削除するには、設定するだけです

System.Net.ServicePointManager.DefaultConnectionLimit = X;

デフォルトの制限は 2 です。

于 2010-03-19T05:31:01.670 に答える