ASP NET核心MVC - 如何配置进程外会话状态?
答
什么是重要的是会话数据由缓存支持。您需要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
答
谢谢马尔钦。我想通了......但它是棘手的让它的工作目标是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"