Iis 如何在ASP vNext中使用会话

Iis 如何在ASP vNext中使用会话,iis,asp.net-core,asp.net-core-mvc,Iis,Asp.net Core,Asp.net Core Mvc,如何在ASP MVC 6中使用会话变量 我找不到关于如何存储和使用会话变量的工作示例。有人能帮忙吗?github上的会话回购有一个示例: 您可以通过控制器的会话属性添加包“Microsoft.AspNet.session”:“1.0.0-beta8”到project.json,然后使用Microsoft.AspNet.Http访问会话 在该名称空间中,您有上下文的扩展方法 您还需要在Startup.cs上将其与DI一起使用: public void ConfigureServices(IServ

如何在ASP MVC 6中使用会话变量


我找不到关于如何存储和使用会话变量的工作示例。有人能帮忙吗?

github上的会话回购有一个示例:

您可以通过
控制器的会话
属性

添加包
“Microsoft.AspNet.session”:“1.0.0-beta8”
到project.json,然后使用Microsoft.AspNet.Http访问会话

在该名称空间中,您有上下文的扩展方法

您还需要在
Startup.cs
上将其与DI一起使用:

public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddSession();
    }
下面是一个示例控制器:

using Microsoft.AspNet.Http;
using Microsoft.AspNet.Mvc;

namespace MvcWebApp.Controllers
{
    [Route("[controller]")]
    public class SomeController : Controller
    {
        public async Task<IActionResult> Edit()
        {
            HttpContext.Session.SetInt("myVar", 35);
        }
    }
}
使用Microsoft.AspNet.Http;
使用Microsoft.AspNet.Mvc;
命名空间MvcWebApp.Controllers
{
[路线(“[控制器]”)]
公共类控制器:控制器
{
公共异步任务编辑()
{
HttpContext.Session.SetInt(“myVar”,35);
}
}
}

我尝试过,但出现以下错误:500内部服务器错误系统。必须指定ArgumentException ISession Store。如果启用app.UseInMemorySession(),我收到另一个错误500内部服务器错误系统。异常TODO:在尝试激活“Microsoft.AspNet.Session.DistributedSessionStore”时,无法解析类型“Microsoft.Framework.Cache.Distributed.IDistributedCache”的服务。是否启用了缓存?示例使用Redis cacheI未启用缓存。我尝试添加RedisCache包,但仍然没有成功。我成功地做到了。它是services.AddCachingServices();AddSessionServices();在添加项目nuget引用并在服务中添加会话后,我收到以下错误:
错误CS1061'IServiceCollection'不包含'AddSession'的定义,并且找不到接受类型为'IServiceCollection'的第一个参数的扩展方法'AddSession'(您是否缺少using指令或程序集引用?
Beta 8将上下文属性重命名为HttpContext(与MVC 5一致)Hi@ChristopherHackett您是否有指向此重命名的链接?当然@neel-记录在MVC repo的票据中