![IIS 8.5 强制使用不正确的 Content-Length 标头](https://linux22.com/image/645838/IIS%208.5%20%E5%BC%BA%E5%88%B6%E4%BD%BF%E7%94%A8%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%20Content-Length%20%E6%A0%87%E5%A4%B4.png)
我们有一个应用程序可以动态生成 PDF 文件并强制下载该文件。此代码在 Windows Server 2008 上运行正常。据我所知,IIS 强制将 Content-Length 设置为 749,而该值应该是 83233。我尝试在应用程序代码中设置该值,但 IIS 完全忽略了它。
- 已安装 Microsoft 的 URL 重写功能,但此站点没有条目
- 我已禁用静态和动态内容压缩
- 通过应用程序代码,我尝试设置 Content-Length 标头并将 X-Content-Length 标头设置为相同的值。这就是我确定该值被 IIS 覆盖的方式
- 当我通过 ColdFusion 的内置 Web 服务器访问相同的 URL 时,下载工作正常。这就是我知道这是 IIS 或 IIS 与 ColdFusion 之间的连接器的问题的原因。
以下是来自服务器的响应标头
Response Headers
-------------------------------------------------------------
Connection: close
Content-Length: 749
Content-Type : application/pdf;charset=UTF-8
Date: Thu, 13 Nov 2014 03:36:03 GMT
Server: Microsoft-IIS/8.5
X-Content-Disposition: attachment;filename=LasVegas.pdf
X-Content-Length :83233
X-Powered-By :ASP.NET