0

我已经为我的 Web 应用程序使用应用程序请求路由实现了 HTTP 负载平衡。我有一个负载平衡器服务器和两个应用程序服务器,即 SERVER1 和 SERVER2。我已经在负载平衡器服务器的服务器场中配置了客户端关联

但问题是来自同一个客户端的请求被发送到不同的服务器。我已经在服务器场的监控和管理部分确认了这种行为。此外,我在客户端“对象引用未设置为对象实例”中出现以下错误。

这是因为当来自客户端的第一个请求到达 SERVER1 时,它在 SERVER1 的会话中创建了一个对象。现在来自同一客户端的第二个请求试图访问在会话中创建的对象。但是请求是从负载均衡器而不是 SERVER1 访问 SERVER2。由于 SERVER2 客户端中不存在会话,因此出现此错误。

我了解客户端关联配置旨在处理此问题,其中来自客户端的所有后续请求都将发送到为第一个请求提供服务的同一服务器。

但就我而言,此功能不起作用。对此的任何解决方案都将非常有帮助。

4

2 回答 2

2

我找到了解决方案!该应用程序在 Firefox 浏览器上运行良好,但不适用于 IE 和 Chrome。ARR使用 cookie 来启用Client Affinity。Cookie 名称将用于在客户端设置 cookie。也就是说,客户端必须接受 cookie 才能使客户端亲和性正常工作。默认 cookie 名称是ARRAffinity

为了浏览应用程序,我使用了 url servername/appname。当我从 IE 和 Chrome 浏览应用程序时,没有创建ARRAffinity Cookie。当使用servername.domainname/appname浏览站点时,cookie 被创建并且应用程序工作正常

于 2013-09-25T10:07:47.093 回答
2

旧胎面,但可能对某人有用。

似乎这是一个 ie 问题或“使用 Internet Explorer 时的预期行为”:如果站点名称不包含至少一个 '.' 然后 ARR 客户端关联 cookie 不会发送回 ARR,因此 ARR 会生成一个新的。

因此,有效的解决方法是任何别名,包括“。” (点)作为 Nagendra 提到的 servername.domainname

http://forums.iis.net/t/1178295.aspx?ARR+2+5+Client+Affinity+Not+Working

于 2015-06-15T17:15:52.530 回答