Session.Timeout和Server.ScriptTimeout之间有什么区别?

时间:2009-03-03 21:03:57

标签: .net asp.net timeout

我们有一个ASP.net网页应用程序,其中有几个页面偶尔会在页面加载时超时(通常,这些都是通过处理进行错误上传/下载的管理员类型页面。)

其中一个解决方案是将Session.Timeout和Server.ScriptTimeout提升到非常大的数字 - 这很好。但是,这里有很多关于每个设置何时适用的讨论。说得客气一点,MSDN页面可以解释。

任何人都可以向读者提供差异所在的摘要版本,还是指向我们找不到的MSDN页面?

谢谢,所有。

(II6上的net 2.0,如果重要的话。)

作为一个奖励后续问题,更改这些设置,例如,某个页面的on_load()函数是否会更改整个应用程序或仅该页面?

编辑:哎呀!我的意思是“Session.Timeout”而不是“Server.Timeout。”

2 个答案:

答案 0 :(得分:9)

脚本超时控制代码可以运行多长时间来处理请求,因此您可以更改为允许长时间运行的代码。 IIS管理器中的设置用于每个请求,Server.ScriptTimeout属性用于当前请求,因此如果可能,您应该在代码中设置它,以便所有常规页面使用正常的脚本超时。

会话超时是用户上次发出请求后服务器上的会话对象存活的时间。 IIS管理器中的会话超时设置是创建的任何新会话的默认设置,您从代码访问的Session.Timeout属性是该特定会话的超时。默认会话超时为20分钟,您可以将其提高一点而没有任何很大的风险,但是您仍应将其保持在合理的值内,这样您就不会有会话对象在内存中粘连数天。

答案 1 :(得分:6)

ScriptTimeout是ASP.NET运行时等待ASPX页面结果所花费的秒数。

Session.Timeout是ASP.NET将等待所花费的分钟数。