2016-07-22 80 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"