代码之家  ›  专栏  ›  技术社区  ›  Uwe Keim Chand

是否可以告诉iis 7并行处理请求队列?

  •  4
  • Uwe Keim Chand  · 技术社区  · 14 年前

    目前,我们正在开发一个asmx,asp 2.0,iis 7 web服务,它可以进行一些计算(并返回一个动态生成的文档),运行大约需要60秒。

    由于有一台具有多个核心和大量RAM的大型计算机,我希望IIS尽最大努力将到达其请求队列的请求路由到应用程序池线程池的所有可用线程。

    但我们却经历了相反的平静:

    当我们从多个不同的客户端向asmx web服务url发出请求时,iis似乎会连续处理这些请求。即请求1到达,正在处理,然后请求2正在处理,然后请求3等。

    问题:

    如果有足够的线程可用,是否可以(不更改web服务的c代码)将iis配置为并行处理请求?

    如果 :我该怎么做?
    :有什么解决方法/提示吗?

    2 回复  |  直到 10 年前
        1
  •  4
  •   Greg Bray    14 年前

    确保将应用程序池的“最大工作进程”设置为>1,以使工作池成为 Web Garden . 默认情况下,每个应用程序池设置为只使用一个进程,这将导致请求排队。

    您可能还想看看这篇关于使用 ASP.NET 2.0 in Integrated mode on IIS7

    1. ASP.NET线程设置不用于在集成模式下控制请求并发性

    最小的自由线, 中的minlocalrequestfreethreads设置 system.web/httpruntime 配置部分和 中的MaxWorkerThreads设置 流程模型配置节编号 长控制穿线机构 由ASP.NET使用。相反,asp.net 依赖于IIS线程池和 允许您控制最大值 并发执行数 通过设置 MaxConcurrentrequestsPercpu双字 值(默认值为12)位于 hkey_local_machine\software\microsoft\asp.net\2.0.50727.0 关键。此设置是全局设置,不能 个别申请变更 池或应用程序。解决办法

    a.控制 应用程序,设置 MaxConcurrentRequestsPerCPU设置。

        2
  •  2
  •   John Saunders KB22    14 年前

    您正在Web服务中使用会话状态吗?对使用会话状态的页面的请求是序列化的;可能与您的服务相同。

    ASP.NET和IIS通常并行处理请求。如果他们没有,那就有东西在阻止它。