【问题标题】:ASP NET Core MVC - How to configure Out of Process Session State?ASP NET Core MVC - 如何配置进程外会话状态?
【发布时间】:2017-02-07 13:17:41
【问题描述】:

有没有办法使用 ASP.NET Core MVC 配置进程外会话状态(使用 Windows 状态服务器或 SQL Server)?

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc


    【解决方案1】:

    重要的是会话数据由缓存支持。您需要将 IDistributedCache 实现添加到您的应用程序服务,而不是内存缓存,即:

    对于 SQL Server:

    services.AddDistributedSqlServerCache(options =>
        {
            options.ConnectionString = @"your_connection_string";
            options.SchemaName = "dbo";
            options.TableName = "TestCache";
        });
    

    (确保您的项目中添加了Microsoft.Extensions.Caching.SqlServer 包)

    对于 Redis:

    services.AddDistributedRedisCache(options =>
        {
            options.Configuration = "localhost";
            options.InstanceName = "SampleInstance";
        });
    

    (包:Microsoft.Extensions.Caching.Redis)

    不知道有没有针对 ASP.NET Core 分布式缓存的 Windows State Server 的实现。

    分布式会话的文档链接:https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed

    更多关于 ASP.NET Core 中的会话:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state

    【讨论】:

      【解决方案2】:

      谢谢马尔辛。我想通了......但是当以net46而不是核心为目标时,让它工作起来很棘手(并非所有版本的Microsoft.Extensions.Caching.SqlConfig.Tools都受net46支持,而且这并不明显,因为我的应用程序不是' t 抛出错误 - 只是为我设置的会话变量获取 null 值...)

      最终对我有用的是 project.json 中的这个配置:

      依赖项下:

      "Microsoft.AspNetCore.Session": "1.0.0",
      "Microsoft.Extensions.Caching.SqlServer": "1.1.0-preview1-final",
      "Microsoft.Extensions.Caching.SqlConfig": "1.0.0-rc1-final"
      

      在工具下:

      "Microsoft.Extensions.Caching.SqlConfig.Tools": "1.0.0-rc1-final"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-10
        • 2019-04-03
        • 2018-12-01
        • 2020-03-10
        • 1970-01-01
        相关资源
        最近更新 更多