我在ASP.NET <sessionState>
配置上遇到了奇怪的行为。
我正在尝试使用mode="SQLServer"
。
当我放置cookieless="true"
时,一切都按照应有的方式运行,ASPStateTempSessions
表按预期填充。
当cookieless="false"
ASP.NET完全忽略我的配置并在其进程中托管会话时(ASPStateTempSessions
上没有任何内容)。
我不知道为什么cookieless
配置会产生这种意外行为。
任何人都知道为什么会这样,或者我该如何解决?
顺便说一下,这是我的配置:
<sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="MyConnectionString" />
P.S:
我已经仔细检查了我的浏览器Cookie,这绝对与我的浏览器无关。
为了测试,我还尝试使用custom implementation。
发生完全相同的行为,仅适用于cookieless="true"
。
答案 0 :(得分:1)
当在web.config中使用cookie时,在第一次使用cookie之前不会创建会话,直到会话对象持久存在。这意味着数据库不会更新,cookie也不会写入服务器。您可以通过将一些虚拟值写回Session对象然后检查是否已创建数据库记录并将cookie写入浏览器来测试是否是这种情况。