1

基本上我的问题是我有一个大约在 3 年前开发的网站,而开发时建议该网站将被互联网上的少数人使用。

但现在似乎很多用户都在访问该网站。因此,我们计划创建一个 Web 服务器农场,我们的网站有多个服务器。

开发中的主要问题是旧网站使用InProc了会话状态,现在由于我们要升级到多个服务器,我们想要更改InProcOutproc即 StateServer 会话状态。

您能否指导我进行此升级,以及如何以简单易行的方式实现它,而不是在使用会话的地方更改每个页面上的编码。

4

1 回答 1

1

您将在这里拥有的是将您的站点移动到许多 Web 服务器,而这里的实际问题是“如何为每个用户保持与服务器有关的相同状态”。

有两种选择。

第一个选项是设置将用户拆分到服务器的路由器,使用“粘性选项”,这意味着每个用户都坚持到一个服务器的会话,并且只有一个。在这种情况下,使用 inproc 或 sql server session 无关紧要,只要路由器做好。这当然是您不使用任何其他数据库来存储公共数据的情况。

第二种选择是使用 sql 服务器并将会话移动到服务器,但这里服务器必须在一台服务器上,而其他服务器从该服务器获取会话数据。您还可以在 web.config 上为所有 Web 服务器设置相同的密钥机器。

因此,对于这种情况,您需要。

  1. 在一台服务器上设置公共/共享 SQL 服务器
  2. 要在此安装会话数据库(实际上从 asp.net 运行脚本)
  3. 设置 web.config 以将此数据库用作会话
  4. 将 web.config 设置为具有相同的机器密钥。

如果您将数据库用于其他数据,则将此数据库与会话数据库放在一起,并且您也可以共享连接到该数据库。这里的要点是数据必须在一台计算机上实时,其他计算机连接到这台主计算机以获取数据。

于 2012-03-27T11:00:11.963 回答