2009-07-24 5 views
1

シングルコアはWCFサーバ忙しいスレッド私はサービスを設定しようとしていますし、私は次のエラーを得続ける

http://localhost/Service1.svcにあるHTTPサービスがビジー状態です。

非常に厄介な問題は私が修正することができますしたい。

システムに負荷がかかっていませんが、自分のプログラムでスレッドを使用しています。多分私はそれらを無効にする必要がありますか?いいえ?

私は、Server 2003を実行している古いコンピュータを使用しています。私のラップトップはデュアルプロセッサなので、問題はありません。誰もがこれに対処する経験がありますか?

答えて

0

どのようにスレッドを使用していますか。間違った使い方をしていると、彼らは簡単に自分のやり方に入ることができます。

スレッドを使用する素朴な方法は、新しいThread()ですべてのリクエストで新しいスレッドを開始することです。それはあなたのパフォーマンスを殺し、価値がないでしょう。

シングルコアコンピュータでは、一度に1つのスレッドしか実行できないことを考慮してください。ほとんどがブロックされていても、約20スレッド以上のスレッドが余りにも多くなります。

0

クライアントアプリケーションでスレッドを使用していて、各スレッドがWCFサービスを呼び出しているとしますか?デフォルトの最大並行性設定の1つのために、実行中で問題が発生している可能性があります。 WCFでは、接続、セッション、コールなどの最大数を設定できます(バインドによって異なります)。バインド設定を確認し、必要な並行性を確認してください。

たとえば、netTcpBindingには、maxConnections設定とlistenBacklog設定の両方があります。 listenBacklogを使用すると、「http://localhost/Service1.svcにあるHTTPサービスがビジー状態」のようなメッセージを吐き出す前に、サービスホストが許可する、maxConnectionsを超えてリスナーで待機できるチャネルの最大数を設定できます。

関連する問題