如何在ASP.NET 5.0(vNext)MVC 6中配置SQL会话状态?

时间:2015-06-15 15:32:48

标签: sql-server configuration session-state asp.net-core asp.net-core-mvc

在Visual Studio 2015 RC,ASP.NET 5 vNext中,我试图在MVC 6中使用SQL Session State。我不知道如何去做。有人可以给我看样品或给我一些提示吗?

我只是在试用Azure Load Balancer。我设置了一个负载均衡集并将两个VM链接到它。 当我转到具有以下代码的视图时,它可以正常工作,因为我可以看到两个VM之间的机器名称发生变化。 @ System.Environment.MachineName

我尝试启用会话,如此链接How to implement Session State in ASP.NET vNext MVC 6所示。 但由于此会话保留在服务器中,因此当用户移动到负载平衡集中的其他服务器时,会话状态不会在服务器之间保留。

我知道如果使用SQL Server会话状态,您可以持久保存相同的会话。在ASP.NET 4中,只需通过更改web.config中的sessionState元素即可轻松完成,如下所示。

<sessionState 
            mode="SQLServer"
            sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
            cookieless="false" 
            timeout="20" 
    />

我希望有人能告诉我如何在ASP.NET 5(vnext)中完成这项工作

1 个答案:

答案 0 :(得分:0)

目前正在开发对SQL Server会话状态的支持。因此,您现在最好的选择是使用内存中会话(其中提到的问题是关于负载平衡器类型场景后面的多个服务器的状态不存在)。但是,您可以尝试使用Dim value As Integer = 12345 If somecondition Then a = value Else b = value End If 缓存(ASP.NET 5会话实现依赖于基于Redis的实现,其中有Redis缓存的实现。)

IDistributedCache

您需要参考以下包:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<IDistributedCache, RedisCache>();
    services.AddSession();

//-----------

public void Configure(IApplicationBuilder app)
{
   app.UseSession();