2012-04-13 7 views
0

私はWebリモートサービスを使用して卓上アプリケーションと通信するWebサービスを持っています。クライアントまたはユーザーは、このWebサービスを使用して、データベースにデータを挿入または更新します(何らかの処理後にデスクトップアプリケーションを使用して)。私が直面している問題は、ピーク時には、2000〜3000回、このWebサービスを呼び出して15〜20分でデータを挿入/更新することを意味します。2000年頃にスレッド数が増えていることがわかります。 w3wp.exeのTaskManager)。これらのスレッドをたくさん作成する理由は何でしょうか?他のWebサービスでは50スレッド以下しか表示されていないことがわかります。IISのスレッドをたくさん作成しているAsp.net webserviceの呼び出し

注意:問題の原因となっているWebサービスは差分アプリケーションプールにあります。

ありがとう

答えて

0

これは、応答を待っているコールが数多くあることを意味します。 ASP.NETはスレッドプールを使用するため、高速操作に使用するか、代わりにASYNCハンドラを使用して、スレッドがプールに戻ってASP.NETが結果が得られるとすぐに新しいスレッドを割り当てます。

デッドロックの結果、BRLまたはDLLまたはそれ以外の場合があります。 Webサービスコードにブレークポイントを置き、ブロックされる場所を見つけてください。

+0

スレッドの問題は、ピーク時に2000〜3000件のリクエストがあった場合にのみ発生します。私たちが100のカウントで要求を持っているとき、スレッドは制御下にあります。 BTW ..サービスは、デスクトップアプリケーション(ただのプロキシ)への要求を捨てる以外の素晴らしい仕事をしていません。 – Anish

+0

@Anish:おそらくデスクトップアプリケーションはボトルネックです。それらのスレッドは、デスクトップアプリケーションの応答を待っています。各要求に対してデスクトップアプリケーション全体を作成し、破棄しています。そのため、古いCGIアプリケーションはスマートなWebプラットフォームに置き換えられています。 – Xaqron

関連する問題