<sessionState> 配置仅在无 cookie 时有效



我在 ASP.NET <sessionState>配置上遇到了奇怪的行为。

我正在尝试使用mode="SQLServer".当我把cookieless="true"一切都像它应该的那样愉快地工作时,ASPStateTempSessions桌子按预期填满了。

cookieless="false" ASP.NET 简单地忽略我的配置并在其进程中托管会话时(ASPStateTempSessions没有任何内容)。

我不知道为什么cookieless配置会产生这种意外行为。有人知道为什么会发生这种情况或我该如何解决吗?

顺便说一下,这是我的配置:

<sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="MyConnectionString" />

附言:

我已经仔细检查了我的浏览器cookie,这绝对与我的浏览器无关。

我还尝试使用自定义实现只是为了测试。发生完全相同的行为,仅适用于cookieless="true"

在 web.config 中使用 cookie 时,在将某些内容持久保存到会话对象之前,不会在首次使用时创建会话。这意味着数据库不会更新,cookie也不会写入服务器。您可以通过将一些虚拟值写回 Session 对象,然后检查是否已创建数据库记录并将 cookie 写入浏览器来测试是否是这种情况。

最新更新