gpt4 book ai didi

asp.net - 为什么在 StateServer 模式下运行时会丢失 session ?

转载 作者:行者123 更新时间:2023-12-02 15:07:08 26 4
gpt4 key购买 nike

我已检查服务器 (Win Server 2003) 应用程序事件日志是否存在以下问题 http://support.microsoft.com/kb/308097哪个没有出现。看起来 session 对于随机用户来说是随机下降的

这是一个单一服务器设置,没有网络场,也没有负载平衡

即使日志中没有出现我上面指出的问题,是否值得增加 stateNetworkTimeout 属性?目前的配置很简单

<sessionState mode="StateServer" cookieless="false" stateConnectionString="tcpip=localhost:42424" timeout="60"/>

更新:

使用 FormsAuth 并将超时设置为 60

IIS6设置

  1. 回收工作进程(以分钟为单位)= 120
  2. 回收工作进程(请求数)= 35000
  3. 在以下时间回收工作进程 = 未选中
  4. 最大虚拟内存 = 未选中
  5. 最大使用内存 = 未选中
  6. 空闲后关闭工作进程 = 90
  7. 限制内核请求队列 = 1500
  8. 其他一切=未选中

最佳答案

我意识到这是一个较旧的问题,但我最近遇到了类似的问题。就我而言,额外的日志记录显示 session 变量在一系列 .aspx 页面中似乎随机丢失。

偶然发现这个之后blog post我检查了我的代码,果然,我的所有 Response.Redirect 语句要么是默认的(例如 Response.Redirect(target) ,要么是 true (例如 Response.Redirect(target, true) )。在明智地检查我的重定向并设置将 Session 变量设置为 false 后出现的问题(例如 Response.Redirect(target, false) )——问题[似乎]已解决!我会注意到,执行此操作时需要小心,因为页面的其余部分仍然会当传递 false 时在重定向后执行。在许多情况下,我需要在重定向后添加一个 return 语句,以防止运行我不打算在重定向后运行的代码。

我只在生产中和负载下经历过 session 变量丢失(从未在开发或测试中)。我关于为什么这解决了我的问题的理论是 Response.Redirect (默认/true)强制结束执行线程 - 如果线程仍然忙于序列化 session 对象并将它们放回状态服务器(线程)如果被中断,它们( session 对象)可能会丢失。

关于asp.net - 为什么在 StateServer 模式下运行时会丢失 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2698114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com