为什么 ASP.NET Sitecore 网站会在大约 7 或 8 分钟后丢弃会话



我有一个 Sitecore 7.5 站点,该站点包含两个前端 CD 服务器和一个带有粘性会话的负载均衡器。 负载均衡器的默认超时为 5 分钟。 Sitecore 站点的 ASP.NET 默认会话超时值为 20 分钟。 我一直在收到有关该网站随机将人们注销的报告。我刚刚运行了以下实验:

  • 在新浏览器中启动新会话
  • 在我的手机上启动了一个计时器
  • 几乎连续点击网站中的不同页面。我闲置的最长时间可能是 30 秒。
  • 大约 10 - 15 分钟后,我突然注意到我不再登录应用程序

我不知道为什么会这样。这是我用来登录的代码。

        protected void ButtonLogin_Click(object source, EventArgs e)
    {
        bool loginSuccess = Sitecore.Security.Authentication.AuthenticationManager.Login("extranet\" + TextLoginUsername.Text, TextLoginPassword.Text, CheckKeepLoggedIn.Checked) || (Sitecore.Security.Authentication.AuthenticationManager.Login("sitecore\" + TextLoginUsername.Text, TextLoginPassword.Text, CheckKeepLoggedIn.Checked));
        if (loginSuccess)
        {
            LabelLoginError.Visible = false;
            Sitecore.Analytics.Tracker.Current.Session.Identify(Sitecore.Context.GetUserName());
            Sitecore.Analytics.Tracker.Contact.Tags["Full Name"] = Sitecore.Context.GetUserName();
            Response.Redirect(ButtonLogin.PostBackUrl);
            return;
        }
        //Otherwise log as error.
        LabelLoginError.Text = "Username/password combination was incorrect.";
        LabelLoginError.Visible = true;
    }

有什么想法吗?

检查日志以查看应用程序域或应用程序池是否由于文件活动而重新启动,从而丢失 inProc 会话状态。在日志中查找"关机"或"Sitecore 已启动"。

早先的答案误读了问题

您正在登录到计算机 A,但在负载均衡器上的粘性会话过期 5 分钟后,您的下一个请求将启动一个新的粘性会话,并且有 50% 的机会再次路由到服务器 A。如果将其分配给服务器 A,则您的体验不受影响,因为您仍登录到服务器 A。相反,如果将新的粘性会话分配给服务器 B,那么您没有登录服务器 B,因此您会认为您"注销",但实际上您从未在服务器 B 上登录过。

要解决此问题,请将负载均衡器会话超时设置为与服务器会话超时相同 - 即 20 分钟。

粘性会话的存在是为了确保您的请求发送到同一服务器。通过将负载均衡器会话长度设置为比服务器会话超时更短,您已经创建了 15 分钟的不足,因为您可能会被定向到错误的服务器,而您的活动会话仍存在于原始服务器上。

在网页中设置带有服务器名称或 IP 地址的 html 注释将确认此行为。

检查您的数据文件夹是否位于网络根目录之外。如果您的数据位于 webroot 中,则由于数据文件夹中更改的文件数量、日志文件、视图状态缓存、lucene 索引等,它可能会重置应用程序池......

有关更多详细信息,请参阅此帖子: http://www.sitecorenutsbolts.net/2015/06/01/Application-Pool-Restarts-when-Data-folder-is-in-Webroot/- 确保您的数据文件夹不在

您是否检查了对 CD 服务器的分配?您可以在浏览器控制台中检查。也许您的 cookie 已过期,并且您的负载均衡器刚刚切换了用户一直在使用的服务器?

还有一件事 - 您是否使用 SSL 来保护连接?在过去的一个同事/管理员在使用 SSL 正确配置 LB 时遇到了一些问题。

相关内容

  • 没有找到相关文章

最新更新