【发布时间】: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