IIS 中的会话处理选项

War*_*ner 2 windows iis .net high-availability

使用现代 .NET IIS Web 架构进行会话处理有哪些选项?

我知道 IIS 的本机会话支持在重新启动时会丢失会话。此外,Microsoft 建议将会话存储在数据库中,这是我的首选解决方案。

我正在尝试构建一个高度可用的 .NET IIS 平台,该平台可针对第三方应用程序进行水平扩展。该应用程序是在外部开发的,虽然我可以推动将其存储在数据库中,但在立即截止日期内这是不可能的。

第三方建议使用持久会话,这是我避免的。粘性会话会降低可用性,因为当 Web 服务器不可用时,它会导致之前使用它的客户端出现可访问性问题。此外,它减少了负载平衡功能,因为单个服务器可能会收到比其他服务器更多的请求。IIS 在重新启动时仍会丢失会话,这是我希望消除的。我也不想将会话存储在客户端的 cookie 中。

我希望实现完全的高可用性,同时仍允许将应用程序部署到空闲服务器而不会产生影响。此外,全负载平衡。我能否在不重写应用程序的情况下在此技术平台上启用此功能?我有哪些选择?

Jim*_*uts 5

ASP.net 2.0 及更高版本支持将会话存储在 SQL 服务器中,只需更改 web.config 中的 SessionState 提供程序并使用 aspnet_regsql.exe 设置 SQL 数据库。您可以在MSDN - 会话状态提供程序页面上阅读有关配置会话状态提供程序的更多信息。

更新:MSDN - 会话状态模式页面上还提供了更容易阅读的分步说明。