2016-07-10 6 views
0

2つのエンドポイントと5つのWebサービスを持つWCFアプリケーションがあります。私のWCFアプリケーションを認証するために、別のWebサービスが呼び出されます。認証後、アプリケーションは要求のタイプに応じて別のWebサービスを呼び出します。問題は、着信要求ごとに、私のWCFアプリケーションが少なくとも2つの異なるWebサービスを呼び出すことです。最近の着信要求数が増加し、消費者にTimeoutエラーが発生しました。私のCPU使用率は10%に達しました。私はWebサービスのmaxconnection属性を増やしました。WCFアプリケーションの発信要求の最大数を増やす

2つのWebサイトにエンドポイントを分けました。それは処理されるスループットを増加させました(そして、それはほぼTimeoutの問題を解決しました)。しかし、私は各WebサイトのIISに対する発信要求には制限があると思います。もしあれば、それは何ですか?私はそれをどのように増やすことができますか?

注: 私は別の問題hereを持っていると私は一つのことを起源とこれらの問題の両方を推測します。

+0

ボトルネックが実際に何であるかを確認しましたか? – stuartd

+0

はい。私は言いましたように、各Webサイトには発信リクエストの数が限られていると思います。これよりも別の理由が見えません。 – David

+1

あなたのサービスの '[ConcurrencyMode](https://msdn.microsoft.com/en-us/library/system.servicemodel.concurrencymode(v = vs.110).aspx)'を見ましたか?たぶんあなたはクライアントコールを1つずつ処理しているでしょうか? –

答えて

2

WCFサービスのConcurrencyModeを変更すると、多分あなたを助けることができます。サービスの振る舞いに属性を追加するだけです。あなたのコードはスレッドセーフであることを確認する必要があります。これは、アプリケーションがマルチスレッド化されるためです。

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)] 
public class MyService : IMyService 
{ 
    // Implementation 
} 
関連する問題