【问题标题】:Asp.net webservice call creating lot of threads in IISAsp.net webservice 调用在 IIS 中创建大量线程
【发布时间】:2012-04-14 05:35:24
【问题描述】:

我有一个使用 .Net 远程处理与桌面应用程序通信的网络服务。客户端或用户正在使用此 Web 服务将任何数据插入或更新到数据库(经过一些处理后通过桌面应用程序)。我面临的问题是,在高峰期,这意味着在 15 到 20 分钟内调用 2000 - 3000 次这个 web 服务来插入/更新数据。我可以看到线程数增加到 2000 左右。(在w3wp.exe 的任务管理器)。创建这么多线程的可能原因是什么?正如我所看到的,其他 Web 服务只显示不到 50 个线程。

注意:导致问题的 Web 服务位于差异应用程序池中。

谢谢

【问题讨论】:

    标签: asp.net web-services


    【解决方案1】:

    这意味着许多呼叫正在等待响应。 由于 ASP.NET 使用线程池,因此您应该将它们用于快速操作,或者改为使用 ASYNC 处理程序,以便线程回到池中,并且一旦结果准备好,ASP.NET 就会分配一个新线程。

    这可能是BRLDLL 或其他任何情况下出现死锁的结果。尝试在 Web 服务代码中设置断点并找出它被阻塞的位置。

    【讨论】:

    • 线程问题只发生在高峰时段,当我们有 2000 到 3000 个请求时。当我们有 100 个请求时,线程受到控制。顺便说一句.. 除了将请求发送到桌面应用程序(它只是一个代理)之外,该服务没有做任何出色的工作
    • @Anish:桌面应用程序可能是瓶颈。这些线程正在等待桌面应用程序响应。您正在为每个请求创建和销毁整个桌面应用程序。这就是为什么旧的 CGI 应用程序已被智能网络平台取代的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 2023-03-21
    相关资源
    最近更新 更多