2016-07-22 58 views

回答

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"; 
    }); 

(package:Microsoft.Extensions.Caching.Redis

我不知道是否有用于ASP.NET核心分布式缓存的Windows状态服务器的实现。

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

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

0

谢谢马尔钦。我想通了......但它是棘手的让它的工作目标是net46而不是核心(不是所有版本的Microsoft.Extensions.Caching.SqlConfig.Tools都支持net46,并且它并不明显,因为我的应用程序不是'牛逼投掷错误 - 刚开空值会话变量我设置...)

什么终于为我工作在这个配置中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"