Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Redis缓存作为会话存储asp.net核心_C#_Session_Caching_Redis_Asp.net Core Mvc - Fatal编程技术网

C# 使用Redis缓存作为会话存储asp.net核心

C# 使用Redis缓存作为会话存储asp.net核心,c#,session,caching,redis,asp.net-core-mvc,C#,Session,Caching,Redis,Asp.net Core Mvc,尝试将Redis缓存用作asp.net mvc核心(2.1.1)中开发的现有Web应用程序中的会话存储 指的是 但当尝试在Redis Desktop Manager中检查会话设置/获取值时,不会显示任何内容 要使会话存储使用Redis缓存而不是默认的内存中(in-proc)选项,是否还需要其他步骤 Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddD

尝试将Redis缓存用作asp.net mvc核心(2.1.1)中开发的现有Web应用程序中的会话存储

指的是

但当尝试在Redis Desktop Manager中检查会话设置/获取值时,不会显示任何内容

要使会话存储使用Redis缓存而不是默认的内存中(in-proc)选项,是否还需要其他步骤

Startup.cs

    public void ConfigureServices(IServiceCollection services)
     {
      services.AddDistributedRedisCache(options =>
            {
                options.InstanceName = Configuration.GetValue<string> 
                          ("redis:name");
                options.Configuration = Configuration.GetValue<string> 
                                           ("redis:host");

              });

             services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddSessionStateTempDataProvider();
             services.AddSingleton<IDistributedCache, RedisCache>();

services.AddSession(options =>
            {
                options.IdleTimeout = TimeSpan.FromMinutes(60);
            });

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }
            app.UseStaticFiles();
            app.UseCookiePolicy();
            app.UseSession();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Login}/{action=Login}/{id?}");
            });
        }
      }
 "redis": {
    "host": "127.0.0.1",
    "port": 6379,
    "name": "localhost"
  },
使用的Nuget软件包

Microsoft.Extensions.Caching.Redis 2.1.1

行动中的示例用法方法

 var storedValue = "Redis TimeStamp : " + DateTime.Now.ToString("s");
            HttpContext.Session.SetString("TestValue", storedValue);
            HttpContext.Session.CommitAsync();
感谢你在这方面的指点和指导

TIA检查此项:

//RedisCache中的共享会话
使用StackExchange.Redis;
使用Microsoft.AspNetCore.DataProtection;
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
services.AddDataProtection()
.SetApplicationName(“vextus”)
.PersistKeysRedis(ConnectionMultiplexer.Connect(Configuration.GetConnectionString(“RedisConnection”)),
“数据保护密钥”);
services.AddDistributedRedisCache(o=>
{
o、 Configuration=Configuration.GetConnectionString(“重新连接”);
});
services.AddSession(o=>
{
o、 Cookie.Name=“vextus”;
o、 Cookie.SameSite=SameSiteMode.None;
o、 Cookie.HttpOnly=true;
o、 IdleTimeout=时间跨度从分钟(10);
});
}

一般来说,我建议StackExchange.Redis满足您的.net Redis需求。我敢肯定,如果你想在github上闲逛,Azure Redis团队也会推荐你这么做。@NoRefundsNoReturns谢谢你的建议。。即使是我也在考虑同样的问题,但以前从未使用过。