C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式

1.首先 Nuget 安装 

Newtonsoft.Json
RedisSessionProvider

替换成Microsoft.Web.Redis.RedisSessionStateProvider+

StackExchange.Redis.StrongName这个更好

RedisSessionProvider有时候会莫名其妙的没有插入redis-Session

StackExchange.Redis

Owin

2.WebConfig配置


   


        
            
        

   

   
   

3.Global.aspx-Application_Start() 配置

#region Session 分布式插件

            var RedisConStr = System.Configuration.ConfigurationManager.ConnectionStrings["RedisExchangeHosts"]?.ConnectionString;
            StackExchange.Redis.ConfigurationOptions redisConfigOpts = ConfigurationOptions.Parse(RedisConStr);
            RedisSessionProvider.Config.RedisConnectionConfig.GetSERedisServerConfig = (HttpContextBase context) =>
            {
                return new KeyValuePair(
                    "DefaultConnection",
                    redisConfigOpts);
            };

            #endregion

4.使用

设置 Session["AppUser"] = AppUser;

获取ApplicationUser AppUser = (ApplicationUser)Session["AppUser"] ?? null;

配置 Nginx

C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式_第1张图片

C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式_第2张图片

C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式_第3张图片

C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式_第4张图片

C# MVC +Redis+RedisSessionProvider +Owin 实现真正的 分布式_第5张图片

你可能感兴趣的:(C#,bs,Redis)