【问题标题】:Web Host has strange settings, need alternative session state suggestions虚拟主机有奇怪的设置,需要替代会话状态建议
【发布时间】:2013-01-08 19:12:39
【问题描述】:

我正在为一个体育俱乐部建立一个网站。俱乐部对将他们的主机转移到不同的网络主机不感兴趣,所以我坚持使用当前主机。我将新的 Web 应用程序部署到主机,但经过几个小时的测试后,很明显在登录和会话状态方面有些奇怪。

每当我闲置超过 10 分钟时,我的 MVC 验证令牌就会突然停止解密。我进入 IIS 并将机器密钥设置为静态值,这个问题就消失了,但很明显他们将 ASP.NET 空闲超时设置设置为 10 分钟。这意味着如果站点上没有活动,每 10 分钟 InProc 会话数据就会被销毁。我向主机提交了支持票,但他们不愿意在我的应用程序池中为我更改该设置,并指出“目前无法在服务器上更改该设置,因为增加这可能会影响性能关闭(原文如此)服务器”。

俱乐部有点小,最多有 500 名俱乐部成员,很少有成员会经常访问该网站,所以我几乎可以保证 10 分钟超时每天会发生多次,而且我将会话超时设置为 60 分钟,因此如果站点的唯一用户在给定时间空闲 10 分钟,则让站点清除会话不是一个好主意。

我的第一个想法是使用 SQL 会话存储。我从未使用过它,但我知道它存在。但是,存在的一个警告是我们被限制为 350mb 的 SQL 存储。虽然这可能超出了该网站现在的需要,但我想我们可能会接近达到极限。我预计不会在会话中存储太多数据,仅在与贝宝和购物车交互时存储一些数据(可能这里或那里也有系统消息),所以也许这不是一个大问题?

我们确实拥有无限的磁盘空间,所以我想到的另一种选择可能是编写一个自定义的基于磁盘的会话存储解决方案。有什么理由这可能不是比 SQL 更好的主意吗?

最后,我有一个完全不合时宜的“天哪,我不敢相信我正在考虑这样做”的想法,即定期在每个页面上进行 AJAX 调用(例如,每 8分钟)“ping”一个非缓存的轻量级 MVC 操作,只是为了让服务器保持活动状态。我认为这可能会奏效,除了有人:

  1. 进入购物页面并创建购物车
  2. 被转移到贝宝
  3. 无论出于何种原因在贝宝屏幕上花费 10 多分钟,而网站上没有其他人
  4. 回来看到他们的购物车消失了。

在这种情况下,我可能只是将购物车移动到数据库中。

所以...想法、cmets、建议?对于东道主不让我改变这个设置,我真的很沮丧,我的第一反应是寻找另一个东道主,但正如我之前所说,俱乐部对东道主有一些奇怪的依恋,不想搬到其他地方。

提前致谢!

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 session-state sql-session-state


    【解决方案1】:

    一些想法:

    关于问题:会话在负载平衡系统上“丢失”是很常见的。这可以通过移动到单个指定服务器来解决(如果托管公司现在不这样做并提供选项

    Cookie 会话:如果您使用 .Net Membership,您可以将登录过程更改为使用 cookie。这伴随着明显的一些用户不允许使用 cookie 陷阱。再次,一个考虑。目前在他们希望用户保持登录状态的学校网站上工作。

    ** 使用 Cookie,您的登录是稳定的,但您的会话不会得到更好的保存。所以你运气不好,在 Session State 中有很多东西可以指望。

    最终结果是您可以通过 IP 或 Cookie 跟踪用户,但除非这是一个可修复的负载平衡问题,否则您将走向无会话应用程序。

    【讨论】:

    • 我花了几天时间考虑你们的 cmets 关于无会话的问题。我不想走那条路,因为 Session 很容易使用。但是在尝试了一些我在原始问题中抛出的替代方案之后,很明显会话对我来说永远不会可靠,我需要转向无会话应用程序。幸运的是,只有一件主要的事情需要重构,我可以认为应用程序的其余部分是无会话的。
    • 我理解你的痛苦。使用“永久登录”表示 cookie 的项目。结果是会话在登录范围内永远不会可靠。首先,我们努力“维护”会话对象。一段时间后,维护逻辑就是它自己的维护巨人。毕竟我们放弃了会议。祝你好运。这并不容易。
    猜你喜欢
    • 2015-12-20
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2013-07-16
    • 2013-03-15
    • 2014-07-15
    相关资源
    最近更新 更多