【问题标题】:ARR does not send Response.Flush content to clientARR 不向客户端发送 Response.Flush 内容
【发布时间】:2019-12-16 13:53:29
【问题描述】:

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

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

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

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

【问题讨论】:

  • 尝试使用 Response.End()。使用 Response.Flush() & Response.Close() 不会正确关闭。
  • 但是剩下的需要处理的代码呢?

标签: iis asp-classic iis-10 arr


【解决方案1】:

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

【讨论】:

  • 谢谢,我已将此信息发送给服务器管理员,这确实起到了作用。我很沮丧环境(开发和生产)之间的工作方式不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 2017-08-11
  • 1970-01-01
  • 2022-07-08
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
相关资源
最近更新 更多