在推送bin/js文件后,Servicestack丢失会话,直到缓存清空

本文关键字:会话 清空 缓存 Servicestack bin js 文件 | 更新日期: 2023-09-27 18:11:27

ServiceStack应用程序使用Angular(但只使用/auth也会出现问题*见下文)

我肯定会遇到问题的浏览器:Chrome, Safari

遇到用户在登录重定向后立即失去会话的问题。我也测试过使用/auth?username&password,我得到会话Id很好,但回到/auth显示我是未经授权的。

清除缓存可以解决这个问题,使用隐身模式也可以。

我试图在CSS和JS文件中添加版本控制,以防万一,这是推时的问题,但这并不能解决问题。

复制

的步骤
  • Push dll, js文件
  • 转到暂存网站
  • 尝试登录…成功
  • 重定向和会话结束

在不强制应用程序用户清除缓存的情况下,有什么想法可以在哪里寻找/解决这个问题?如有任何建议或指导,对我都很有帮助。

在推送bin/js文件后,Servicestack丢失会话,直到缓存清空

如果你使用的是MemoryCacheClient,那么添加文件到你的Web应用程序的文件夹将重新启动ASP。. NET应用程序域,重新启动您的Web应用程序,清除所有现有内存。

你需要使用任何其他分布式缓存提供商,以便在App Domain重启后保留你的缓存和会话。

好了,找到问题了!这个很有趣。

设置:我们有两个服务栈站点

  • example.com//on staging this is SSL
  • sub.example.com//暂存在非ssl

下面是这个问题是如何重现的,在测试时我们会....

  • 之前登录到example.com这会产生一个。example.com cookie域名
  • 我们将文件更改推送到sub.example.com这会擦除此子域名
  • 的cookie
  • 我们将尝试登录sub.example.com并失败
  • 如果我从example.com中删除了。example.com cookie,那么登录sub.example.com就可以了
为了解决这个问题,我们也制作了sub.example.com SSL,这就解决了这个问题。从长远来看,我们将使所有的cookie通配符,并根据Mythz的建议添加一个非memcache提供程序。