0

在构建以高可用性为目标的 ASP.NET MVC 应用程序时,如果没有可用的状态服务器,将会话状态保留在 SQL Server 上是否是一种好习惯?

4

2 回答 2

0

我建议改为使用AppFabric Caching (fka Velocity)。

于 2010-06-07T19:14:26.693 回答
0

这里的重点是您有 2-3 个网络服务器,就像您在 Craigs 回答的评论中提到的那样。

一种方法是使用有其自身问题的 SQL 服务器会话状态http://idunno.org/articles/277.aspx

如果你有这个 SQL-Server,我会小心的,因为 sessionstate 的数据库会给它带来沉重的负担。每个请求都会写入数据库。

我们使用 2 个网络服务器和一个具有粘性会话的负载均衡器。如果您的第一个请求最终在服务器 1 中结束,那么您的所有请求都由服务器 1 处理。(它有点复杂,但您明白了。)

这可能并不总是最好的解决方案,但至少在我们的网站上(它是一个用户通常停留 20-30 分钟的商店)它运作良好。我们只使用很少的 SessionState,并且将大部分用户特定的东西存储在 ProfileSystem 中。但我猜如果请求转到不同的服务器,ProfileSystem 也会失败。

于 2010-06-07T20:45:13.027 回答