IIS Web Farm的防弹会话

时间:2009-04-07 11:44:59

标签: asp.net iis state

下午好,全部。

我们目前正在从一个Web服务器跳转到两个,为了向我们的用户提供无缝的故障转移,我们需要对会话做一些事情。

目前,我们正在研究三种不同的方法。

  1. 使用状态服务器
  2. 使用SQL服务器
  3. 将所有内容放入隐藏的字段
  4. 我个人希望看到第一个选项到位,因为我们没有第二个选项的专用数据库,第三个选项似乎是一个混乱的黑客。

    我目前面临的问题是我的经理对状态服务器提供的单点故障不满意(我们的SQL服务器被复制,所以没有麻烦)。

    是否可以做一些关于复制状态服务器的事情?

5 个答案:

答案 0 :(得分:3)

这可能是一种痛苦,但我决定关闭Session并处理后果。到目前为止,没有任何不可克服的事情出现。

答案 1 :(得分:2)

经过一番调查,我们决定采用StateServer选项。我们仍然希望看到如何克服StateServer的单点故障,我们已经提出了另外两个调查途径。

我们的第一个选择是使用第三方程序来处理会话。我们现在正在看的那个被称为nCache:我认为还有一个名为ScaleOut的我们也可以看一下。

第二个选项是使用会话状态分区,我们目前也正在调查此选项:http://msdn.microsoft.com/en-gb/magazine/cc163730.aspx

答案 2 :(得分:1)

据我所知,无法备份或复制StateServer服务。在Web场中使用StateServer时的另一个问题是,如果您的群集允许同一浏览器在不同请求上访问不同的计算机,则每个请求可能会有不同的会话数据! (编辑:Martin在下面指出,你可以通过在多个Web服务器之间共享一个StateServer实例来解决这个问题)。为了您的目的,选项2或3将更容错,我将提出另一个想法:对于小块数据尝试使用cookie进行会话存储。

答案 3 :(得分:1)

我认为你正在转向另一个建筑:不止一个前端IIS。

你打算使用NLB吗?

  • 如果是这样,您最好的选择是使用状态服务器,它将作为概念中的应用程序服务器。

在我的公司中,我们将.NET应用程序迁移到具有网络负载平衡的两个IIS,并且应用程序用于在proc中使用Session管理。

我们调查了另一种选择:

  • 在NLB配置中使用客户端关联,允许回发返回到生成进程的IIS,价格是松散所有NLB ......

在Microsoft咨询之后,最好的选择是State Server:)

希望它有所帮助!

最诚挚的问候!

答案 4 :(得分:0)

另外,请确保您没有使用SQL Server来存储仅来自数据库的会话状态。如果是这样,您也可以每次都调用数据库。