无法在ASP.NET vNext项目中使用会话,怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (54)

我有一个使用会话的ASP.NET vNext项目。但是,在尝试获取/设置会话中的值时,我会得到这个错误。

An exception of type 'System.InvalidOperationException' occurred in Microsoft.AspNet.Http.Core.dll but was not handled in user code Additional information: Session has not been configured for this application or request.

这里是我的控制器方法:

    [AllowAnonymous]
    [HttpGet("/admin")]
    public IActionResult Index()
    {
        if (Context.Session.GetString("UserName") == null) // error thrown here
        {
            return RedirectToAction("Login");
        }

        return View();
    }

我增加了kvm包"Microsoft.AspNet.Session": "1.0.0-beta3"在我的project.json文件,并将我的应用程序配置为通过Startup.cs就像这样:

public void ConfigureServices(IServiceCollection services)
{
    // code removed for brevity
    services.AddCachingServices();
    services.AddSessionServices();
}

public void Configure(IApplicationBuilder app)
    {
        app.UseMvc();
        app.UseInMemorySession(configure: s => s.IdleTimeout = TimeSpan.FromMinutes(30));
    }

怎么解决呢?

提问于
用户回答回答于
public void Configure(IApplicationBuilder app)
{
    app.UseInMemorySession(configure: s => s.IdleTimeout = TimeSpan.FromMinutes(30));
    app.UseMvc();
}
用户回答回答于

如果您正在使用RC1:需要将这些依赖项添加到project.json中:

 "Microsoft.AspNet.Session": "1.0.0-rc1-final",
 "Microsoft.Extensions.Caching.Memory": "1.0.0",

在Startup.cs文件中:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCaching();
        services.AddSession();
        services.AddMvc();
    }

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
     app.UseSession(); //outside of dev  if (env.IsDevelopment())
     ....
     }

所属标签

可能回答问题的人

  • 天使的炫翼

    15 粉丝531 提问35 回答
  • 旺仔小小鹿

    社区 · 运营 (已认证)

    48 粉丝0 提问27 回答
  • 富有想象力的人

    2 粉丝0 提问26 回答
  • 发条丶魔灵1

    6 粉丝525 提问25 回答

扫码关注云+社区

领取腾讯云代金券