processModel的maxWorkerThreads设置没用

BusyDonkey 2010-05-03 04:14:58
我在machine.config中设置了:
<processModel autoConfig="false" maxWorkerThreads="3" />

maxWorkerThreads=3,表示Asp.net允许并发处理的请求数是3*2=6(双核CPU),这个限制在VS自带的IIS上是起作用的,但是我把应用程序部署到IIS(5.1)上的时候,发现这个限制不起作用了,同时处理的请求甚至可以超过6

请求的页面Default.aspx.cs

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 _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不会减,这是为什么?
...全文
341 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
BusyDonkey 2010-05-04
  • 打赏
  • 举报
回复
顶啊!
BusyDonkey 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ly302 的回复:]
在VS里面

进入配置管理器

把CPU的数量设置一下试试
[/Quote]

打开了,不知道怎么设.....
皇城龙三 2010-05-03
  • 打赏
  • 举报
回复
在VS里面

进入配置管理器

把CPU的数量设置一下试试

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧