ARR 不向客户端发送 Response.Flush 内容
ARR does not send Response.Flush content to client
在某些经典asp应用程序中,我们使用Response.Flush
立即将内容从服务器发送到客户端,至少过去是这样工作的使用 IIS7.
现在我们有两个服务器和一个代理反向服务器使用 ARR 来负载平衡请求(所有 3 运行 IIS10),由于某些原因,Response.Flush
方法不能像以前那样工作。看起来响应被发送到 ARR,后者等待响应服务器发送所有内容,然后再将其提供给客户端。
这主要是在剩余内容需要一些时间来处理时出现的问题。
有什么我应该知道的配置吗?
ARR 服务器代理设置中有一个响应缓冲区阈值设置,默认为 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。
在某些经典asp应用程序中,我们使用Response.Flush
立即将内容从服务器发送到客户端,至少过去是这样工作的使用 IIS7.
现在我们有两个服务器和一个代理反向服务器使用 ARR 来负载平衡请求(所有 3 运行 IIS10),由于某些原因,Response.Flush
方法不能像以前那样工作。看起来响应被发送到 ARR,后者等待响应服务器发送所有内容,然后再将其提供给客户端。
这主要是在剩余内容需要一些时间来处理时出现的问题。
有什么我应该知道的配置吗?
ARR 服务器代理设置中有一个响应缓冲区阈值设置,默认为 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。