Concurrency HttpHandler低并发请求处理

Concurrency HttpHandler低并发请求处理,concurrency,iis-7.5,httphandler,Concurrency,Iis 7.5,Httphandler,我有一个简单的.NET4.5HttpHandler,它似乎不能扩展到10个并发请求。我期待一个更高的数字。处理程序只会休眠一秒钟并返回一个简单的字符串 concurrent requests requests/minute 1 60 8 480 9 540 10 600 11 600 12

我有一个简单的.NET4.5HttpHandler,它似乎不能扩展到10个并发请求。我期待一个更高的数字。处理程序只会休眠一秒钟并返回一个简单的字符串

concurrent requests   requests/minute
1                     60
8                     480
9                     540
10                    600
11                    600
12                    600
15                    600
32                    600
512                   600
我有一台64位Win7机器,它有一个4核i7,32GB的ram和一个SSD,在所有测试期间机器都是空闲的。IIS的配置是开箱即用的。我也尝试过用IISTuner从Codeplex创建的应用程序池运行这个程序,但结果没有改变

在true/false之间更改IsReusable不会起任何作用

我在web.config中添加了一个条目来禁用会话状态。我正在使用SoapUI进行测试,并在每个请求标志设置之后设置了close connections(可以在http头中看到这一点)。同样,一切似乎都没有改变

修改每个应用程序池的进程数确实会增加进程数,但仍然没有达到我预期的吞吐量(数百/数千个并发请求)

以下是处理程序:

class TestHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        Thread.Sleep(1000);
        context.Response.Write("I slept for 1s");
    }

    public bool IsReusable { get { return true; } }
}
以下是相关的web.config文件:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <sessionState mode="Off" timeout ="20" cookieless="false"></sessionState>
  </system.web>

  <system.webServer>
    <handlers>
      <add name="Proposal01_Test" verb="*"
        path="*.test"
        type="Proposal01.TestHandler, Proposal01"
        resourceType="Unspecified" />
    </handlers>
  </system.webServer>

</configuration>


我遗漏了什么?

问题在于@Damien指出-再次感谢-这是Win7/IIS7.5中的非服务器操作系统限制,我从未注意到,因为我们在同一台机器上有Java服务,可以扩展到数千个并发请求区域。是的,女士。

你能在服务器上试用吗?各种版本的Windows客户端风格都施加了各种任意的连接限制(事实上,谷歌快速搜索证实了Windows7上的IIS7.5限制了10个并发请求)@Damien-这确实是个问题;将其移动到Win2k8虚拟机上可以扩展到10个并发请求之外。非常感谢。可悲的是,虚拟机似乎无法扩展到20-30个请求之外,但吞吐量确实在不断增加,因此我们不会遇到类似的问题-但这是另一篇文章。。。