【发布时间】:2020-07-01 06:20:31
【问题描述】:
ASP.NET Core 3 中的一个如何在两台服务器之间共享会话(负载平衡)? 是否可以在多个 Web 服务/API 和主 ASP.NET MVC 应用程序之间共享会话?
我对 .NET Core 3 非常陌生,我习惯于在 ASP.NET Framework MVC 中处理会话状态(在此就像在站点的 IIS 配置中使用相同的机器密钥一样简单),但我'我们了解到 .NET Core 3 的一切都发生了变化,此外,随着新版本的推出,许多文档都非常过时/过时,.NET Core 1 与更高版本无关,2 与 3 无关,而且它还需要很多NuGet 包可能会或可能不再起作用。
目前我已经使用 .NET Core 3 成功实现了 SQL 会话存储,但是机器密钥选项不再显示在 IIS 中,我真的不知道如何在 appsettings.json 文件中配置它们(如果仍然使用完全)。
我们的设置是 2 台服务器,它们必须共享会话信息,使用 F5 负载均衡器,我们使用 .NET Framework MVC 的旧应用程序是这样配置的,我需要帮助才能实现相同的结果,但使用 .NET Core 3.
我通读了https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/web-farm?view=aspnetcore-3.1,但它并没有真正解释如何实际做任何事情
这个https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-3.1 也帮助配置了 SQL 会话存储,但没有帮助配置两台服务器之间的共享
【问题讨论】:
-
有人知道这方面的信息吗?
-
我遇到了类似的问题,我需要在两台服务器之间共享会话。我认为解决方案是启动一个
redis缓存......至少我是这么认为的 -
在我的情况下,我不能使用 redis,因为我们没有这样做的权限。我们必须使用 IIS
-
如果会话仅用于身份验证,那么可能会远离会话本身并采用推荐的在 mvc 中进行身份验证的方式?如果没有,问题可能是如何以正确的方式在 mvc 中执行您的用例,因为您可能必须使用这些详细信息更新问题。会话不再是在 mvc 领域做任何事情的首选方式,并且它将继续变得越来越困难,就像在以 USB 为方式的现代硬件中找到串行端口一样。但我知道你可能有真正的会议案例,我只是说..
-
devcentral.f5.com/s/question/0D51T00006i7jOE/… 检查此页面和链接。这可能会有所帮助
标签: c# session-variables session-state .net-core-3.0 sql-session-state