设想
我有 30 个使用 Classic ASP 构建的应用程序和 25 个使用 ASP.NET 构建的应用程序。目前,它们托管在单个 IIS 中。每个应用程序都配置为一个网站。因此,总共有 55 个网站。
问题:我希望 ASP 应用的会话超时值为 10 分钟,ASP.NET 应用的会话超时值为 25 分钟。这可以针对每个网站单独配置,但我想要一种不需要单独配置网站的解决方案。
我猜想可以使用 machine.config 为 ASP.NET 应用程序完成此操作,但不确定。还有其他解决方案吗?!
答案1
无论如何,您很幸运,因为这两个设置是分开管理的。只需更改 IIS 顶层的设置,它就会为您处理这个问题。
对于传统 ASP,会话超时位于 ASP 对象 -> 会话属性 -> 超时下。
对于 ASP.NET,会话超时位于会话状态对象 -> 超时下。(这将更新根 web.config 并导致 AppDomain 回收,因此请不要在白天在生产服务器上执行此操作)
两个值均以分钟为单位。
答案2
问题:我希望 ASP 应用的会话超时值为 10 分钟,ASP.NET 应用的会话超时值为 25 分钟。这可以针对每个网站单独配置,但我想要一种不需要单独配置网站的解决方案。
对于会话超时,您可以更改 global.asa (ASP) 或 global.asax (ASP.NET)。有一个名为 Session_Start() 和 Session_End() 的方法,您可以通过它们执行此操作。创建会话超时的方法有很多种,不幸的是,我最了解的是编程 (VBScript/C#) 方法来实现您想要的效果。
如果您正在寻找更快捷或更适合管理员的功能,那么 web.config 文件中的 SessionState 元素可能就是您所需要的(关联)。