ARR 不向客户端发送 Response.Flush 内容

ARR does not send Response.Flush content to client

在某些经典asp应用程序中,我们使用Response.Flush立即将内容从服务器发送到客户端,至少过去是这样工作的使用 IIS7.

现在我们有两个服务器和一个代理反向服务器使用 ARR 来负载平衡请求(所有 3 运行 IIS10),由于某些原因,Response.Flush 方法不能像以前那样工作。看起来响应被发送到 ARR,后者等待响应服务器发送所有内容,然后再将其提供给客户端。

这主要是在剩余内容需要一些时间来处理时出现的问题。

有什么我应该知道的配置吗?

A​​RR 服务器代理设置中有一个响应缓冲区阈值设置,默认为 256 KB。

如果您将它设置为 0 (KB),它一定会如您所愿地工作。

这是一个机器范围设置,因此您需要有管理权限才能修改它。

您可以通过 运行 在命令提示符下执行以下命令来更改设置

%windir%\system32\inetsrv\appcmd.exe set config  -section:system.webServer/proxy /minResponseBuffer:"0"  /commit:apphost

或使用 IIS 管理器的 GUI:

  • 打开 IIS 管理器
  • 单击菜单上的服务器名称
  • 双击应用程序请求路由缓存
  • 操作窗格中单击服务器代理设置
  • 滚动到 缓冲区设置 组。
  • 更改响应缓冲区阈值 (KB) 设置。
  • Actions 窗格上单击 Apply