2012-04-13 44 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

相关问题