积极答复者
设置iis和web.config中session超时时间无效的问题

问题
-
希望设置SESSION时间长才超时,但是始终20分钟就超时了,怎么设置都没有用,我是不是哪里写错了,希望指点,谢谢!这个DEBUG实在是太糟心了,改了之后要过20分钟才能看到有没有写对……
login.aspx(简化):
<script runat="server"> Protected Sub Unnamed_Click(sender As Object, e As EventArgs) Session("username") = username.Text End Sub </script> <asp:Content ContentPlaceHolderID="MainContent1" runat="server" > <asp:TextBox runat="server" ID="username"></asp:TextBox> <asp:TextBox runat="server" ID="password"></asp:TextBox> <asp:Button Text="确认" runat="server" OnClick="Unnamed_Click" /> </asp:Content>
web.config的内容如下,并且iis(WIN10自带的版本)中【会话状态】也已经设置了相同的内容。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.web> <sessionState timeout="500" mode="InProc" cookieless="UseCookies" /> </system.web> </configuration>
不知道为什么,超时时间还是20分钟不是500分钟。
看到网上有提到
mode为InProc可能造成Session丢失的情况:
1>. ASP.NET进程(aspnet_wp.exe)、IIS进程(w3wp.exe)默认的20分钟重启应用程序;
2>. 缓冲池填满后重启;
3>. 进程保护措施重启。
但是不知道应该如何解决?是否一定要使用StateServer模式?
答案
-
自己终于搞定了,还是IIS的回收机制。除了设置会话时间(web.config)以外,还需要在俩地方进行设置。在应用程序池,选择对应的应用程序池,右键,高级设置。如下图部分修改
- 已标记为答案 ENASFDSAF AS 2018年8月13日 5:46
全部回复
-
自己终于搞定了,还是IIS的回收机制。除了设置会话时间(web.config)以外,还需要在俩地方进行设置。在应用程序池,选择对应的应用程序池,右键,高级设置。如下图部分修改
- 已标记为答案 ENASFDSAF AS 2018年8月13日 5:46