0

我有一个 Spring MVC 控制器,它通过异步 servlet 为应用程序/pdf 提供服务,允许我在响应主体等待服务器端以等待内部服务返回 pdf 的字节 [] 时立即刷新输出流响应头类型“application/pdf”。没有分块。

我的观察是在 azure web 应用程序之外运行它(使用 gradle bootRun 或 weblogic)我让 Chrome 显示正在进行的 pdf 下载立即证明标题刷新工作。当相同的代码在 azure web 应用程序下运行时,下载工作但 Chrome 没有显示下载正在进行,这表明 azure 没有刷新响应标头。使用 azure front door 时情况更糟,因为它不会刷新,并且在给出 503 之前它也将响应限制为 30 秒。

我很难过,所以非常感谢任何帮助,如果需要,我可以提供代码。

蚂蚁

4

1 回答 1

0

解决方案是将 IIS Web 服务器配置为在发送响应之前不缓冲响应。这是解决我的问题的配置(responseBufferLimit 零):

<handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" responseBufferLimit="0"/>
</handlers>

参考:https ://docs.microsoft.com/en-us/iis/configuration/system.webserver/handlers/add

于 2020-06-17T10:11:30.130 回答