最近我创建了一个asp经典网页,用户可以使用该网页插入他的工作时间。
其中一个请求是页面应显示每10分钟登录一次的消息。用户在机器上进行制作并且除了他之外还有它的计算机,因此用户可能在小时网页上不活动5-60分钟(甚至更多),但他会留在尽管如此。
为了每隔10分钟制作弹出消息,我使用了在JQuery中创建的计时器,这一切都正常。由于总的非活动时间不确定,因此该人希望会话超时很长(24小时),以便会话状态(登录的用户)保持很长时间。当用户使用插入小时网页时,他被要求在不同的网页上选择他的用户名,然后设置会话("用户")。
要完成长会话超时,我使用以下代码在根目录中创建了一个global.asa
文件:
<script language="VBScript" runat="Server">
<!-- METADATA
TYPE="typelib"
UUID="00000200-0000-0010-8000-00AA006D2EA4"
-->
Sub Session_OnStart
' Session timeout in minutes (24 hours)
Session.Timeout = 1420
End Sub
</SCRIPT>
虽然出于某种原因(我计时),超时仍然是默认的20分钟..然后我也尝试将Session.Timeout = 1420
设置为:
一个。插入小时的网页和
湾在选择用户并正在设置会话的页面中。
但这并没有任何效果。所以我开始研究它,并在stackoverflow上找到了一个类似的问题:Session Timeout in Classic ASP website
所以这让我看到服务器上的IIS
设置,我改变了一些东西。
在网站的应用程序池中,我将Regular Time Interval
更改为0
:
接下来,我还将Time-Out
更改为我网站24 hours
标签Session Properties
上的Services
Sites
:
然而,这一切都没有任何效果。它仍然在20分钟后结束会话(至少它会重置我的会话(&#34;用户&#34;)状态。
在插入网页的时间内,正在按如下方式检查会话:
if session("user")="" then
response.redirect("ShowPage.asp?page=SelectUserTimeout")
response.end
end if
因此,当会话为空时,它将重定向到选择用户页面,在该用户页面中将再次设置会话(&#34;用户&#34;)。虽然我的超时设置,如果它确实有效,这应该只在24小时后发生,而不是在20分钟后发生。
任何想法在这里出了什么问题?
我正按照IIS 8.0
的方式使用。
更新
我发现了问题!我的网站Idle Time-Out (Minutes)
中的Application Pool
似乎仍然是默认的20分钟,由于某种原因,我在asp代码中的session.timeout
并没有覆盖它。
因此,对于遇到同样问题的任何人,我建议您转到Application Pools
中的IIS
- &gt;然后转到网站的应用程序池 - &gt;转到高级设置 - &gt;过程模型 - &gt;并改变空闲超时
答案 0 :(得分:4)
我自己发现了这个问题!似乎我网站的Idle Time-Out (Minutes)
中的Application Pool
仍然是默认的20分钟,出于某种原因,我在asp代码中的session.timeout
并没有覆盖它。
因此,对于遇到相同问题的任何人,我建议您转到IIS中的应用程序池 - &gt;然后转到网站的应用程序池 - &gt;转到高级设置 - &gt;过程模型 - &gt;并改变空闲超时
答案 1 :(得分:0)
事实上the answer posted by the OP不是解决方案。我遇到了同样的问题并解决了配置应用程序池的问题:
基本配置 - 不要使用.NET CLR。选择No Managed Code。
管道代码仍然是集成的。
尝试在Windows 10 Pro和Windows 2008服务器上工作,并为两者工作。