2012-04-13 70 views
0

我有一個web服務,它使用.net遠程處理與桌面應用程序進行通信。客戶端或用戶正在使用此Web服務將任何數據插入或更新到數據庫(經過一些處理後,通過桌面應用程序)。我面對的問題是,在高峯時間,這意味着調用2000 - 3000次這個web服務插入/更新數據在15至20分鐘..我可以看到,線程數量增加到2000左右。(在w3wp.exe的TaskManager)。什麼可能是創造這些多線程的可能原因?正如我所看到的其他webservices只顯示少於50個線程。Asp.net web服務調用在IIS中創建大量線程

注意:導致該問題的Web服務位於diff應用程序池中。

謝謝

回答

0

這意味着許多電話正在等待響應。 由於ASP.NET使用線程池,因此您應該將它們用於快速操作,或者使用ASYNC處理程序,以便線程返回到池中,並且一旦結果準備就緒,ASP.NET就會分配一個新線程。

它可能是BRLDLL或其他任何地方的死鎖的結果。嘗試在Web服務代碼中放置一個斷點並找到它被阻止的位置。

+0

線程問題只發生在我們有2000到3000個請求的高峯時段。當我們要求100個計數時,線程在控制之下。順便說一下..該服務沒有做任何偉大的工作,而只是將請求發送到桌面應用程序(它只是一個代理服務器) – Anish 2012-04-15 15:01:55

+0

@Anish:桌面應用程序可能是瓶頸。這些線程正在等待桌面應用程序響應。您正在爲每個請求創建和銷燬整個桌面應用程序。這就是爲什麼舊的CGI應用已被智能網絡平臺所取代。 – Xaqron 2012-04-20 12:38:55