asp.net – 长时间运行HttpWebRequests
我有一个在IIS6服务器上运行的ASP.NET Web应用程序.该应用程序正在对远程计算机上的xml服务进行长时间运行的调用.远程计算机上的某些服务调用需要很长时间才能执行(有时长达4分钟).长期解决方案是使调用异步,但作为短期解决方案,我们希望增加调用的超时和整个httpRequest超时.
我担心的是,长时间运行的呼叫将填满请求队列并阻止“正常”页面请求完成.如何调整服务器,IIS和应用程序设置以临时解决问题? 目前,每分钟大约有200个页面请求,这导致270个服务请求/分钟. >当前executionTimeout是360(6分钟) 解决方法
这篇关于微软知识库的文章包含了你可能需要的几乎所有信息:
* 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 还有一个必须更改的值是 – 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 调试 您可以执行以下操作: 监视请求是否在队列中等待 监控以下计数器: >运行perfmon 这将告诉我们,由于工人短缺,工作项目是否排队. 检查应用程序池使用的标识 >打开IIS管理器>在IIS管理器中检查站点使用的应用程序池.>选择“应用程序池”列表中使用的应用程序池,然后选择“右键单击” – >属性并查看正在使用的帐户标识.>默认情况下应该是网络服务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – System.web.ui.page的替代品
- asp.net-mvc-2 – 基于两个属性的自定义模型验证.一个影响另
- asp.net-mvc – NullReferenceException ASP.NET MVC文本框
- asp.net – 在AJAX方法调用中的RegisterClientScriptBlock
- asp.net-mvc – 如何在MVC视图中使用Bootstrap按钮插件
- asp.net-mvc – “GenerateResource”任务失败,意外地为空的
- asp.net – 无法打开与SQL Server的连接
- asp.net-mvc – EF,ASP MVC依赖注入.多个并发请求和数据库连
- asp.net-mvc – 用ASP.NET MVC实现MEF?
- 中国网通新版400电话 - 企业直线
- asp.net – 如何从数据库中获取null值到gridview
- 深入了解 Authorize 和 AllowAnonymous
- asp.net-mvc-3 – dataannotations在主键上设置标
- asp.net – 数据源不支持服务器端数据分页
- asp.net-mvc – 如何缓存FileContentResult的性能
- asp.net – 重启后,每个页面的MVC应用程序都很慢
- asp.net-mvc – asp.net mvc url action忽略旧参
- ASP.NET:HTTP错误500.19 – 内部服务器错误0x80
- ASP.NET WebApi文件下载
- asp.net-mvc-3 – ASP.NET MVC3项目并不总是发布