加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 长时间运行HttpWebRequests

发布时间:2020-12-16 07:08:23 所属栏目:asp.Net 来源:网络整理
导读:我有一个在IIS6服务器上运行的ASP.NET Web应用程序.该应用程序正在对远程计算机上的xml服务进行长时间运行的调用.远程计算机上的某些服务调用需要很长时间才能执行(有时长达4分钟).长期解决方案是使调用异步,但作为短期解决方案,我们希望增加调用的超时和整
我有一个在IIS6服务器上运行的ASP.NET Web应用程序.该应用程序正在对远程计算机上的xml服务进行长时间运行的调用.远程计算机上的某些服务调用需要很长时间才能执行(有时长达4分钟).长期解决方案是使调用异步,但作为短期解决方案,我们希望增加调用的超时和整个httpRequest超时.

我担心的是,长时间运行的呼叫将填满请求队列并阻止“正常”页面请求完成.如何调整服务器,IIS和应用程序设置以临时解决问题?

目前,每分钟大约有200个页面请求,这导致270个服务请求/分钟.

>当前executionTimeout是360(6分钟)
>当前的服务呼叫超时是2分钟

解决方法

这篇关于微软知识库的文章包含了你可能需要的几乎所有信息:

* Contention,poor performance,and deadlocks when you make Web service requests from ASP.NET applications

我将就上面文章中处理的一些具体项目进行一些研究.以下信息适用于IIS6,适用于IIS7的注释.

将Processor Worker线程池从25增加到至少100

Threadpool大小的默认值为100,因为autoConfig的默认值为true.

autoConfig涵盖的值是

> maxWorkerThreads
> maxIoThreads
> maxConnection

还有一个必须更改的值是 – ASPProcessorThreadMax,这只能在IIS6中的IIS配置数据库(通过adsutil工具)中设置. [IIS7相当于processorThreadMax值]

所以我选择不更改machine.config设置,因为它们没问题,还有其他参数会受到关闭autoconfig的影响,而是通过IIS配置数据库将ASPProcessorThreadMax从25更改为100(唯一的方法是更改??此设置)值).

例如

cscript %SYSTEMDRIVE%InetpubAdminScripts&;nowiki>adsutil.vb</nowiki>s SET W3SVC/AspRequestQueueMax 100

每台服务器最多连接数

maxconnection
autoconfig将此值设置为12 * cpu的数量,即一次连接到的每个地址可以建立多少个连接.

调试

您可以执行以下操作:

监视请求是否在队列中等待

监控以下计数器:

>运行perfmon
>添加计数器:应用程序队列中的ASP.NET应用程序/请求

这将告诉我们,由于工人短缺,工作项目是否排队.

检查应用程序池使用的标识

>打开IIS管理器>在IIS管理器中检查站点使用的应用程序池.>选择“应用程序池”列表中使用的应用程序池,然后选择“右键单击” – >属性并查看正在使用的帐户标识.>默认情况下应该是网络服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读