【问题标题】:ARR Requests Not Properly Routing to Server FarmARR 请求未正确路由到服务器场
【发布时间】:2021-02-13 07:33:42
【问题描述】:

我已通过 IIS 平台安装程序在我的 Windows 2019 服务器上安装了 ARR,并通过添加服务器场并向其添加单个服务器对其进行配置。

我可以 ping 服务器并且 ARR 显示它在线。问题是,当我从本地 PC 提交请求时,它似乎命中了 ARR 服务器,但从未命中服务器场。浏览器返回404 Not Found

在 ARR 服务器上,如果我向“controlcenter.mydomain.com”创建请求并查看 C:\iislogs\www\HTTPERR 中的日志,我会看到以下错误:

2020-10-30 19:14:54 [my local computer IP address] 53391 [my ARR server IP address] 80 HTTP/1.1 GET / - 404 - NotFound -

我的 webfarm 服务器上的站点是“controlcenter.mydomain.com”和“api.mydomain.com”。我需要为这些子域创建特殊的重写规则吗?我似乎无法从documentation 看出。

我怎样才能找出为什么请求没有正确地从 ARR 服务器路由到我添加到我的服务器场的服务器(如下所示)?

当我尝试在“监控和管理”页面上重置运行时统计信息时,它显示“操作无法完成,因为工作进程已停止。”

URL为“http://controlcenter.mydomain.com”的健康测试也成功了。

【问题讨论】:

  • 可以在图中看到可用性和健康状态,都是未知的。这意味着 ARR 无法正常连接到服务器。需要再次检查服务器的状态。如果服务器正常,则可用性应该可用并且运行状况良好。您可以通过 Health Test 中的验证 URL 测试来检查连接。
  • 我运行了健康测试,它返回成功。当我尝试在“监控和管理”页面上重置运行时统计信息时,它显示“操作无法完成,因为工作进程已停止。”我的 webfarm 服务器上的站点是“controlcenter.mydomain.com”和“api.mydomain.com”。我需要做任何特殊的重写吗?也许这就是它无法正常工作的原因?感谢您的帮助!
  • @BruceZhang 我在原始问题中添加了更多细节。感谢您的帮助!

标签: iis arr windows-server-2019


【解决方案1】:

在使用 ARR 之前,您必须首先确保创建一个与您的域绑定的站点,然后 ARR 可以将该域的请求转发到服务器场。

为了解决停止工作进程的问题,有以下方法。

  • 将 Ping Enabled 设置为 False 会阻止 IIS 检查工作进程是否仍在运行,并使工作进程保持活动状态,直到您停止调试的进程。将 Ping 最大响应时间设置为较大的值允许 IIS 继续监视工作进程。可以参考this document
  • 从控制器计算机上提升的命令提示符运行此命令。

net stop webfarmservice & cd /d "%programfiles%\iis\Microsoft Web Farm Framework" & mkdir extensions & move WFFExtension.dll extensions & net start webfarmservice

当我在我的环境中测试并杀死 w3wp.exe 时,健康测试返回成功,但服务器状态未知。这个命令解决了这个问题。

  • 删除服务器场并重新启动 IIS,然后重新创建服务器场并添加服务器。

【讨论】:

  • 感谢您提供详细信息!当您说“创建一个绑定到您的域的站点”时,我想澄清一下:我已经在我的 IIS 站点上为controlcenter.mydomain.com 指定了一个绑定。 controlcenter.mydomain.com 的 DNS 当前指向现有的负载均衡器。如果我的 ARR 测试顺利,我最终将更新 DNS 以指向 ARR 服务器,而不是现有的负载均衡器(即将终止支持)。听起来对吗?
  • 另外,当我尝试运行该命令时,它显示“服务名称无效。”这可能是因为我的 Window Server 2019 机器上不存在 webfarmservice。我遇到了这篇文章forums.iis.net/t/…,但 Web Farm Framework .msi 的下载链接似乎不再起作用:iis.net/downloads/microsoft/web-farm-framework
  • 有一个简单的方法可以重启w3wp.exe,创建一个站点并访问它。对于你一开始遇到的404错误,建议你开启FailRequestTracing。首先查看ARR服务器上的记录找到转发的后端服务器,然后查看请求是如何在后端服务器上执行的。我认为问题很可能是后端服务器的问题。如果是 ARR 服务器的问题,应该显示 50x 状态码。
  • 谢谢!它现在正在工作!我没有意识到这一点,但是在 ARR 服务器本身上,我需要运行“默认网站”。感谢您对此的帮助!
猜你喜欢
  • 2020-06-22
  • 1970-01-01
  • 2020-09-23
  • 2013-04-29
  • 2014-05-20
  • 1970-01-01
  • 2013-08-30
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多