我在machine.config中设置了:
<processModel autoConfig="false" maxWorkerThreads="3" />maxWorkerThreads=3,表示Asp.net允许并发处理的请求数是3*2=6(双核CPU),这个限制在VS自带的IIS上是起作用的,但是我把应用程序部署到IIS(5.1)上的时候,发现这个限制不起作用了,同时处理的请求甚至可以超过6请求的页面Default.aspx.csusing System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int i = 0;
        i++;
        Thread.Sleep(1000000);
    }
}
这个页面会执行很长一段时间,模拟ASP.NE需要花长时间
处理该页面做了个测试页面Test.aspx.cs,查看ASP.net线程池使用的情况using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;public partial class Test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int Max1,Max2;
        ThreadPool.GetMaxThreads(out Max1, out Max2);
        Response.Write(Max1.ToString());        ThreadPool.GetAvailableThreads(out Max1,out Max2);
        Response.Write("<br/>"+Max1.ToString());
    }
}
发现在VS自带的IIS上每请求一次Default.aspx,Test.aspx显示的GetAvailableThreads会减一。
但是在IIS5.1上,结果不同,每请求一次Default.aspx,Test.aspx显示的GetAvailableThreads不会减,这是为什么?