长ASP.NET操作的IIS请求超时
运行长操作时,我遇到来自IIS的请求超时。在幕后,我的ASP.NET应用程序正在处理数据,但正在处理的记录数量很大,因此操作需要很长时间 但是,我认为IIS会超时会话。这是IIS或ASP.NET会话的问题吗长ASP.NET操作的IIS请求超时,asp.net,iis,iis-6,httprequest,Asp.net,Iis,Iis 6,Httprequest,运行长操作时,我遇到来自IIS的请求超时。在幕后,我的ASP.NET应用程序正在处理数据,但正在处理的记录数量很大,因此操作需要很长时间 但是,我认为IIS会超时会话。这是IIS或ASP.NET会话的问题吗 提前感谢如果要延长ASP.NET脚本的执行时间,请增加该值。对于.NET 1.x,默认值为90秒;对于.NET 2.0及更高版本,默认值为110秒 例如: // Increase script timeout for current page to five minutes Server.S
提前感谢如果要延长ASP.NET脚本的执行时间,请增加该值。对于.NET 1.x,默认值为90秒;对于.NET 2.0及更高版本,默认值为110秒 例如:
// Increase script timeout for current page to five minutes
Server.ScriptTimeout = 300;
// Increase session timeout to thirty minutes
Session.Timeout = 30;
也可以在configuration元素的web.config
文件中配置此值:
<!-- Increase script timeout to five minutes -->
<httpRuntime executionTimeout="300"
... other configuration attributes ...
/>
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
timeout="30" />
</system.web>
</configuration>
也可以在sessionState
配置元素的web.config
文件中配置此值:
<!-- Increase script timeout to five minutes -->
<httpRuntime executionTimeout="300"
... other configuration attributes ...
/>
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
timeout="30" />
</system.web>
</configuration>
如果你的脚本正在执行几分钟,并且有很多并发用户,那么考虑将页面更改为AN。这将提高应用程序的可伸缩性
另一种选择,如果您有管理员访问服务器,将考虑这个长时间运行的操作作为一个候选者来实现作为一个计划任务或一个Windows服务。p> 由于我只在WebForms应用程序的一个管理页面中进行长时间处理,所以我使用了代码选项。但是为了允许对生产进行临时快速修复,我在web.config中的
标记中使用了配置版本。这样,我的管理/处理页面就有了足够的时间,而面向最终用户的页面则保持了他们以前的超时行为
下面我给了你们谷歌需要同样快速修复的配置。当然,您应该使用除我的“4小时”示例之外的其他值,但是请注意会话超时
以分钟为单位,而请求执行超时
以秒为单位
而且——因为已经是2015年了——对于非快速修复,如果可能的话,你应该现在就使用.Net 4.5,而不是.Net 2.0的异步页面,后者在KEV 2010年回答时是最先进的:)
...
... 其他东西。。
...
删除位置中的~
字符
所以
变成
path="Admin/SomePage.aspx"
我在这里发布这篇文章,因为我花了大约3到4个小时在上面,我只找到了上面的答案,上面说确实添加了
执行时间
,但它并不能解决使用ASP.NET核心时的问题。对于它来说,这将起作用:
在web.config文件中,在aspNetCore
节点添加requestTimeout
属性
<system.webServer>
<aspNetCore requestTimeout="00:10:00" ... (other configs goes here) />
</system.webServer>
FYI httpRuntime executionTimeout以秒为单位,没有大写字母。同样重要的是,要使用此超时值,请将调试模式设置为false:@JesseRoper如果您可以将我指向该问题的文档,我很乐意将其包含在答案中,或者您可以直接编辑我的答案。默认的executionTimeout值是110秒。我已经在我的web.config中包含了“location”代码段,但它不起作用。我只使用“executionTimeout”,不需要“sessionState”。我必须配置其他东西吗。我正在使用NET4.0。如果我直接在“system.web”中使用“httpRuntime”,它会在所有页面中正确应用超时。它不会回答问题这只适用于OutOfProcess
托管模型。对于进程中的InProcess
,没有超时设置。IIS将一直等待进程完成,请参阅此处: