Nic*_*las 3 iis session session-timeout asp-classic
最近我创建了一个 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>
Run Code Online (Sandbox Code Playgroud)
虽然出于某种原因(我计时)超时仍然是默认的 20 分钟..然后我也尝试设置Session.Timeout = 1420:
一种。小时的网页插入和
湾 在选择用户和设置会话的页面中。
不过这没有任何影响。于是我开始研究它并在stackoverflow上发现了一个类似的问题:Classic ASP网站中的会话超时
所以这让我看看我IIS在服务器上的设置,我在那里更改了一些东西。
在网站的应用程序池中,我将其更改Regular Time Interval为0:
接下来,我也改变了Time-Out对24 hours在Session Properties上Services我的网站标签(下Sites):
然而这一切都没有任何影响。它仍然会在 20 分钟后结束会话(至少它会重置我的会话(“用户”)状态。
在插入网页的小时内,会话正在检查如下:
if session("user")="" then
response.redirect("ShowPage.asp?page=SelectUserTimeout")
response.end
end if
Run Code Online (Sandbox Code Playgroud)
因此,当会话为空时,它将重定向到选择一个用户页面,其中将再次设置会话(“用户”)。尽管使用我的超时设置,如果它真的有效,这应该只在 24 小时后发生,而不是在 20 分钟后发生。
任何想法这里出了什么问题?顺便说一句,我正在使用IIS 8.0。
更新
我发现了问题!似乎我的网站的Idle Time-Out (Minutes)inApplication Pool仍然是默认的 20 分钟,出于某种原因,我session.timeout的 asp 代码没有覆盖它。
因此,对于面临同样问题的任何人,我建议您进入您Application Pools的内部IIS--> 然后转到网站的应用程序池 --> 转到高级设置 --> 流程模型 --> 并更改空闲超时
我自己发现了问题!似乎我的网站的Idle Time-Out (Minutes)inApplication Pool仍然是默认的 20 分钟,出于某种原因,我session.timeout的 asp 代码没有覆盖它。
因此,对于任何面临同样问题的人,我建议您转到 IIS 中的应用程序池 --> 然后转到网站的应用程序池 --> 转到高级设置 --> 进程模型 --> 并更改空闲时间-出去
| 归档时间: |
|
| 查看次数: |
10732 次 |
| 最近记录: |