小编HR *_*dav的帖子

Azure Redis缓存会话状态提供程序中的会话超时未滑动

通过多个实例扩展Web应用程序是azure cloud的最大优势之一.为了实现对我们的Web角色云应用程序的多个VM支持,我们正在实施Azure Redis缓存.我们使用RedisSessionStateProvider提供程序来维护会话状态.以下是web.config文件中会话管理的配置设置.

<authentication mode="Forms">
  <forms loginUrl="~/Login" slidingExpiration="true" timeout="20" defaultUrl="~/Default" />
</authentication>
<sessionState timeout="20" mode="Custom" customProvider="MySessionStateStore">
  <providers>
     <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider"
        host = "dummy.redis.cache.windows.net" 
        port = "6380" 
        accessKey = "dummysecretkey" 
        ssl = "true" 
        throwOnError = "true" 
        retryTimeoutInMilliseconds = "5000" 
        databaseId = "0" 
        applicationName = "" 
        connectionTimeoutInMilliseconds = "5000" 
        operationTimeoutInMilliseconds = "1000" 
        connectionString = ""/>  
  </providers>
Run Code Online (Sandbox Code Playgroud)

我们的问题是会话超时没有随着用户的回发而延长,假设我们的用户在上午10:00登录应用程序,那么他的会话数据将在绝对时间上午10:20到期.如果用户在上午10:15回发,那么会话应该在上午10:35到期,但这不会发生,它将在10:20 AM绝对到期.

以下是登录按钮的点击事件中的代码

 protected void Button1_Click(object sender, EventArgs e)
 {
   FormsAuthentication.SetAuthCookie(TextBox1.Text.Trim(), true);
   ConnectionMultiplexer connection = ConnectionMultiplexer.Connec("dummy.redis.cache.windows.net,ssl=true,password=dummysecretkey");
   IDatabase cache = connection.GetDatabase();
   Session["UserName"] = TextBox1.Text;
   Response.Redirect("Default.aspx");
 }
Run Code Online (Sandbox Code Playgroud)

如果能让我知道在滑动模式下获得会话超时需要做什么,我将不胜感激.最好的祝福, …

azure session-timeout redis azure-redis-cache

5
推荐指数
1
解决办法
5617
查看次数

标签 统计

azure ×1

azure-redis-cache ×1

redis ×1

session-timeout ×1