当我运行一个长操作时,我遇到来自IIS的请求超时.幕后我的ASP.NET应用程序正在处理数据,但正在处理的记录数量很大,因此操作需要很长时间.
但是,我认为IIS会话超时.这是IIS或ASP.NET会话的问题吗?
当我运行一个长操作时,我遇到来自IIS的请求超时.幕后我的ASP.NET应用程序正在处理数据,但正在处理的记录数量很大,因此操作需要很长时间.
但是,我认为IIS会话超时.这是IIS或ASP.NET会话的问题吗?
如果你想延长ASP允许的时间.NET脚本执行,然后增加Server.ScriptTimeout
值.默认值为90秒.网络1.x和110秒.NET 2.0及更高版本.
例如:
// Increase script timeout for current page to five minutes
Server.ScriptTimeout = 300;
也可以在您的web.config
文件的httpRuntime
配置元素中配置此值:
<!-- Increase script timeout to five minutes -->
<httpRuntime executionTimeout="300"
... other configuration attributes ...
/>
请注意,根据MSDN documentation:
"仅当编译中的调试属性
如果您已经这样做了,但发现您的会话即将到期,那么增加
例如:
// Increase session timeout to thirty minutes
Session.Timeout = 30;
也可以在您的web.config
文件的sessionState
配置元素中配置此值:
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
timeout="30" />
</system.web>
</configuration>
如果您的脚本正在执行几分钟,并且有许多并发用户,那么考虑将页面更改为Asynchronous Page.这将提高应用程序的可伸缩性.
另一种 Select 是,如果您有管理员访问服务器,则将此长时间运行的操作视为实现作为计划任务或Windows服务的候选.