小编cor*_*tez的帖子

IIS应用请求路由将206部分内容改为200

我已经使用 IIS 重写规则和应用程序请求路由模块在 azure 云服务中设置了一个反向代理服务器(根据此处的说明。除了调用我为下载 mp4 文件而创建的端点外,一切都运行良好。这些端点当请求包含 Range 标头时,可以提供部分内容。我遇到的问题是,当我直接点击服务器时,它会正确响应 206(部分内容)和正确的字节范围,但有时当我点击端点通过代理服务器,它以 200 和完整的文件内容响应,这会导致 Chrome 中的视频播放错误。

示例: 当使用这样的请求直接访问服务器时:

GET server.domain.com/api/adFile/fileName with header: Range: bytes=168-3922822

我正确地收到了 206 响应。以下是响应中的一些相关标头:

  • 缓存控制:无缓存
  • 编译指示:无缓存
  • 内容长度:3922655
  • 内容类型:视频/mp4
  • 内容-MD5:f1+K8OT8TEjvtlPU5iUY8a==
  • 内容范围:字节 168-3922822/3922823
  • 过期时间:-1
  • 最后修改时间:2016 年 2 月 16 日,星期二 15:46:46 GMT
  • ETag:“0x8D336E86040C217”
  • 服务器:Microsoft-IIS/8.0
  • X-AspNet 版本:4.0.30319
  • X-Powered-By: ASP.NET

当通过反向代理访问服务器时,请求如下:

GET proxy.domain.com/api/adFile/fileName with header: Range: bytes=168-3922822

我错误地收到了 200 状态代码和完整的文件内容。以下是该响应的相关标头:

  • 缓存控制:无缓存
  • 编译指示:无缓存
  • 内容长度:3922823
  • 内容类型:视频/mp4
  • 内容-MD5:f1+K8OT8TEjvtlPU5iUY8a==
  • 过期时间:-1 最后修改时间:2016 年 2 月 16 日,星期二 15:46:46 GMT
  • ETag:“0x8D336E86040C217”
  • 服务器:Microsoft-IIS/8.5
  • X-AspNet 版本:4.0.30319
  • X-Powered-By: ASP.NET
  • X-Powered-By:ARR/3.0 …

iis cloud azure arr

5
推荐指数
1
解决办法
1163
查看次数

标签 统计

arr ×1

azure ×1

cloud ×1

iis ×1