PHe*_*erg 6 asp.net iis-6 httpwebrequest
我有一个在IIS6服务器上运行的ASP.NET Web应用程序.该应用程序正在对远程计算机上的xml服务进行长时间运行的调用.远程计算机上的某些服务调用需要很长时间才能执行(有时长达4分钟).长期解决方案是使调用异步,但作为短期解决方案,我们希望增加调用的超时和整个httpRequest超时.
我担心的是,长时间运行的呼叫将填满请求队列并阻止"正常"页面请求完成.如何调整服务器,IIS和应用程序设置以临时解决问题?
目前,每分钟大约有200个页面请求,这导致270个服务请求/分钟.
这篇关于微软知识库的文章包含了你可能需要的几乎所有信息:
为线程池大小的默认值是100,因为默认值自动配置为真.
autoConfig涵盖的值是
还有一个必须更改的值是 - ASPProcessorThreadMax,这只能在IIS6 中的IIS配置数据库(通过adsutil工具)中设置.[IIS7相当于processorThreadMax值]
所以我选择不更改machine.config设置,因为它们很好,还有其他参数会受到关闭autoconfig的影响,而是通过IIS元数据库将ASPProcessorThreadMax从25 更改为100(唯一的方法是更改此值).
例如
cscript %SYSTEMDRIVE%\Inetpub\AdminScripts\<nowiki>adsutil.vb</nowiki>s SET W3SVC/AspRequestQueueMax 100
Run Code Online (Sandbox Code Playgroud)
MAXCONNECTION 的自动配置将该值设置为12*CPU的数量,这是多少个连接,可向每个地址要连接在同一时间.
您可以执行以下操作:
监控以下计数器:
这将告诉我们,由于工人短缺,工作项目是否排队.