【问题标题】:IIS 7 Classic ASP session for website, website subdirectory, application inside website用于网站、网站子目录、网站内应用程序的 IIS 7 经典 ASP 会话
【发布时间】:2012-01-19 22:59:09
【问题描述】:

环境:Win server 2008 R2, IIS 7.5

网站

主网站

主网站\子目录

主网站\虚拟目录

对于 MainWebsite - ASP ->(会话属性)-> 超时 -> 00:04:00

对于 MainWebsite\Subdirectory -> ASP ->(会话属性)-> 超时 -> 00:08:00

AppPool ->(进程模型)-> 空闲超时(分钟)-> 10 [我设置为 10 分钟]

要求

我希望 MainWebsite 将会话保持 4 分钟。

我希望 MainWebsite\Subdirectory 将会话保持 8 分钟。

上面的配置是我正在做的一个小测试,所以我可以在我的真实生产环境中将超时值替换为 20 分钟或 30 分钟。

问题是,“主网站\子目录”的会话超时设置无效。 虽然设置为 8 分钟,但会话在每 4 分钟后丢失一次,其中 4 分钟是 MainWebsite 的设置。

这是预期的行为,然后我不明白为什么有一个选项可以在子目录级别配置 ASP 会话超时。

如果您需要更多信息,请告诉我。感谢您的 cmets。

【问题讨论】:

  • 您能显示设置会话超时的代码还是在 IIS 中执行此操作?

标签: iis-7 asp-classic session-timeout


【解决方案1】:

由于这是在 IIS 中完成的,因此它的工作方式确实很有意义。在子目录超时之前,您会超时整个站点,包括子目录。您可以设置它的原因是如果您想在主级别之前超时子目录。我建议使用 asp 代码使会话超时。您可以在 global.asa 中设置它,以便在每个会话的全局级别完成。

<%
Session.Timeout = 40
%>

其中 40 = 分钟数。

参考:http://classicasp.aspfaq.com/general/how-do-i-increase-timeout-values.html

【讨论】:

  • 谢谢罗伯特。刚查了这个。我将子文件夹 ASP 会话状态设置为 4 分钟。我将 Mainwebsite ASP 会话状态设置为 8 分钟。根据您的解释,子文件夹应该超时,因为我没有在子文件夹超时之前使主网站超时。但这不起作用它总是在 MainWebsite 的配置中超时。如果我在 global.asa 中使用 Server.ScriptTimeOut,那会影响整个 Mainwebsite 吗?包括子文件夹。因此,而不是 global.asa,我应该将其设置在某个公共文件中并将其包含在子文件夹的所有页面中。
  • 关于 IIS 设置很有趣,我从来没有在 IIS 中做过子目录超时。您是否将它们设置为 IIS 中的站点?至于在代码中执行此操作,您希望在点击子区域的初始页面时在包含文件或其他内容中进行设置。我把整个站点的 global.asa 引用放在了超时但忘了提到子目录的变化。
  • :) 这很有趣,因为它很有趣。我现在将求助于一个包含文件——事实上,我已经有一个名为 control.asp 的文件,它在子目录的每个页面中都会被调用。在我失去访问权限之前,我今天必须在我的生产环境中执行此操作。感谢罗伯特突然出现。我在 serverfault 中还有一个问题,看看你能不能帮忙serverfault.com/questions/335942/…
  • 有一件事,你回答中的参考是我最喜欢的链接,我一直在那里。 Session.Timeout = 180(表示 180 分钟)。当我看到那个答案时,我把它读作 Session.Timeout 并且有些东西让我回来了,然后我发现它是你引用的 VbScript 超时而不是 Session.Timeout。
  • 是的,很抱歉,我刚刚注意到了。一定是抓错了代码行,谢谢编辑。
猜你喜欢
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
相关资源
最近更新 更多