2011-01-05 94 views
3

我一直在寻找网络,试图找到一些身体其他谁在我面前有这个问题,但没有人描述我在的确切情况。其他人有下降会话状态那些呆在外面,或者像5分钟那样有短暂的会话状态,或者是那种性质。然而,我的问题是,我的会话状态变量似乎只有一次回传,请跳过下一个回复,有时再次回到第三次。ASP.NET会话消失/重新出现

您可以登录我的网站:EpicClanWars.com,然后可能会刷新一些页面,然后在第二或第三个不同的页面之后,您会看到右上角的登录文本框,就像您未登录一样。但是,如果您再次刷新页面,该网站会显示您再次登录。

我假设这与viewstate有关,但我不太了解ASP.NET的viewstate或如何解决它。为了支持这一点,我收到了一些与MAC问题有关的错误消息(我遗憾地忽略了保存这篇文章),以及查看状态问题。

我最近不得不在运行我的网站的机器上重新安装操作系统。当我这样做时,我重新安装了Visual Studio,IIS,SQL Server等。在重新安装之前,我没有这个问题。我正在使用VS.NET 2005和IIS 7.

因此,有谁知道这里发生了什么?并有可能建议如何解决它?

+0

你使用SQL Server保持会话? – Aristos 2011-01-05 22:16:41

+0

@Aristos不,我允许ASP服务器管理“正在处理”会话,如选项所示(所以我认为它会将它保存在内存中)@Russ Cam可以详细说明吗? – Jrud 2011-01-05 22:19:08

+0

看来,如果不查看代码,很难弄清楚发生了什么。你可以分享吗? – Restuta 2011-01-05 22:27:35

回答

2

您可以登录到我的网站: EpicClanWars.com,然后也许 刷新了几页,然后将 第二或第三不同的页面后,您将获得 登录文本框像你右上角 没有登录。但是,如果您再次刷新页面, 网站会显示您再次登录。

这是一个缓存问题。从你有动态页面并保持每个页面上的登录那一刻起,你就需要绝对不要在客户端保存缓存页面。所以你的客户端只需要读取一个缓存页面,在更新之后就可以获得新页面。

在你的页面上,你给你也有一个DNS问题WWW。,检查出来并使其工作。如果您只保留一个副本,您需要将www.epicclanwars.com重定向到epicclanwars.com。此时www.epicclanwars.com,根本没有工作。

即将进入内存的“正在处理中”在共享环境中并不十分准确,并且如果您的计算机运行在他的限制范围内,或者出于任何原因重新启动了池,可能会丢失会话。也许如果你没有解决页面缓存的问题,也可以考虑移动数据库上的会话。

还要检查web.config中的会话,httpCookies形式roleManager,必须有域= “epicclanwars.com”

+0

谢谢,我忘了添加WWW的其他绑定。这个问题是固定的...我会看看缓存,h/o – Jrud 2011-01-05 22:27:22

+0

实际上,我收回“它修复了所有问题”......问题仍然存在,没有缓存,它就会更好。所以这个问题仍然是开放的。 – Jrud 2011-01-05 22:44:04

+0

@Jrud你不需要只是禁用缓存,但为缓存添加标题! – Aristos 2011-01-06 00:31:42