4

当用户登录时,我将 user_id 存储在 Session 变量中,并且在第二页上,我正在检查页面加载,如果 user_id 存在则很好,否则重定向到登录页面,但是当我登录并在几秒钟后刷新页面时重定向到下一页那里的会话为空,我被重定向到登录页面它在整个应用程序中发生我尝试了所有解决方案,但都是徒劳的

另一件事是应用程序在开发服务器和局域网中的本地 IIS 上运行良好,但在实时服务器上,这个问题正在发生。

请提出解决方案,我还在 web.config 的 Proc 中定义会话超时(以分钟为单位)和模式。

提前致谢

4

5 回答 5

1

如果您在应用程序池中使用 InProc 会话状态模式和多个工作进程,则 Session 可能会在几秒钟后自动过期,因为如果同一会话的不同请求由不同的工作进程提供服务,则可能会发生数据丢失。

在我的例子中,我使用InProc 会话状态模式,Maximum Worker Process 设置为 4,因此session is expiring

设置最大工作进程 = 1 解决了它

于 2019-10-03T04:34:28.260 回答
0

您可以添加<httpRuntime delayNotificationTimeout=""/>您的 web.config。看更多

或者

尝试这个

<authentication mode="Forms">
  <forms loginUrl="/loginurl" timeout="2880" />
</authentication>
于 2013-01-23T09:37:25.743 回答
0

在 web.config 中试试这个

<configuration>
 <system.web>
   <sessionState mode="InProc" timeout="90"></sessionState>
 </system.web>
</configuration>
于 2013-01-23T10:09:09.377 回答
0

您是否有机会使用服务器集群?网络负载平衡可能每次都将客户端重新路由到不同的服务器。如果是这样,要么必须重新配置 NLB 以将客户端保持在单个服务器上,要么设置会话共享。

还要检查应用程序池是否有一些过于频繁地自行回收的淫秽规则。

于 2013-01-23T18:41:19.177 回答
0

我刚刚遇到的一个会话问题在这里可能会有所帮助,那就是某些公司的用户会很快结束他们的会话,但其他用户没有问题。经过大量测试,我发现从办公室连接到网站的用户有问题,但从家里连接的同一用户没有问题。

他们的公司设置为对所有出站 Web 请求使用单个 IP(或一组 IP)。好吧,这家公司有多个 IP 用于外部访问,并且每个请求都会更改(或可能更改)IP。这将重置我网站上的会话并将其注销。

我仍在为此实施修复或检查,所以我不能给你一个万无一失的修复,但这是值得研究的。这将解释发生在你身上的事情。

于 2013-01-23T17:26:57.507 回答