我想利用IHttpAsyncHandler实现一个长连接,但测试过程中发现,一旦超过10个连接,网站就打不开了,除非前面的连接处理完,后面才会被处理。

如图所示,前10个不做返回,第11个应该是立即返回的,但是没返回,主要代码如下:
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
if (context.Request.Url.Query == "?details")
{
AsyncResult r = new AsyncResult { Context = context, IsCompleted = true, Html=Count.ToString() };
cb(r);
return r;
}
else
{
AsyncResult r = new AsyncResult { Context = context, AsyncCallback = cb };
System.Threading.Interlocked.Increment(ref Count);//计数
return r;
}
}
难道说主线程在异步处理时不可以空出来继续处理其他的请求吗?
问题解决了,我在win7下开发测试的,IIS在win7下每个进程只能连接10个,但我查的时候发现很多人都以为win7是不限制的,其实win7还是限制了