【问题标题】:Can we store Session state and Cache on Redis Cache in same application?我们可以在同一个应用程序中将会话状态和缓存存储在 Redis 缓存上吗?
【发布时间】:2017-08-21 10:49:15
【问题描述】:

我正在我正在进行的应用程序中实现 redis cahce,我已经成功地为会话状态实现了 redis 缓存,现在会话存储在 redis 缓存中。

web.config 设置如下,

添加名称="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" 端口="6280" throwOnError="true" connectionString="webapplication1.redis.cache.windows.net:6380,password=some 密码,ssl=True,abortConnect=False" host="webapplication1.redis.cache.windows.net" accessKey="some key" ssl="真"

同样,现在我必须将当前缓存实现移动到我在下面的代码 sn-p(在 vb.net 中)中实现的 redis cahce 上,

 Public Function GetApplicationCacheData() As DataSet
            Const rawKey As String = "AKey_"
            Dim dsData As DataSet
            Dim connection As ConnectionMultiplexer = ConnectionMultiplexer.Connect("webapplication1.redis.cache.windows.net:6280,password=some password,ssl=True,abortConnect=False")
            Dim redisObj As IDatabase = connection.GetDatabase()
            Dim valueObj As RedisValue = redisObj.StringGet(rawKey)

            If Not valueObj.HasValue Then
                dsData = class1.GetApplicationCacheData()
                redisObj.StringSet(rawKey,JsonConvert.SerializeObject(dsData), TimeSpan.FromMinutes(90))
            Else
                dsData  = JsonConvert.DeserializeObject(Of DataSet)(redisObj.StringGet(rawKey))
            End If

            Return dsData
        End Function

现在的问题是,如果我将这个缓存实现与会话状态分开运行,但当我在 redis 缓存中一起实现会话状态和缓存时,这个缓存实现工作正常,那么会话变为空,页面重定向到带有表单身份验证的登录页面。

我们在 azure 门户上创建了一个测试应用程序,并将其用于会话状态和缓存存储。

所以我的问题是,我们可以将一个应用程序用于两种实现,还是我们应该在门户上创建另一个应用程序来在 redis cahce 中运行缓存功能,或者我的实现有一些不一致?

【问题讨论】:

    标签: asp.net azure session caching redis


    【解决方案1】:

    您是否尝试在会话状态配置中设置“applicationName”参数?

    【讨论】:

      猜你喜欢
      • 2010-10-17
      • 2014-12-24
      • 2012-05-21
      • 2019-01-14
      • 2021-09-21
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      相关资源
      最近更新 更多