0

我目前正在开发一个在我的机器上运行的 Owin 自托管 Web 服务,它允许对等方(其他机器)使用microsoft 的 BITS从其虚拟目录下载文件。下载将适用于相对较小的文件,但每当我必须下载大文件(超过 2Go)时,我都会从 BITS 收到此错误:

“服务器不支持必要的 HTTP 协议。后台智能传输服务 (BITS) 要求服务器支持 Range 协议标头。”

我想知道是否有办法在 Owin 中启用范围请求,或者我是否必须在收到的请求中手动实现“数据分块”。因为将每个请求的内容更改为具有标头“Accept-Ranges:字节”似乎不起作用(我认为它不会神奇地起作用,但我还是尝试了)。

除了找出如何知道服务器是否支持范围请求之外,我找不到很多关于我正在尝试做什么的信息。

一个问题似乎与我的相似,但更侧重于正确设置标题。它并没有真正显示代码是否/如何在返回响应之前拆分文件。还有一些关于 IIS 的问题,但我的 Web 服务不在 IIS 上运行,它在客户端机器上运行,并由 Windows 服务实例化。

4

1 回答 1

1

我找到了解决我的问题的方法。通过对该主题的更多研究,我发现这篇文章很好地总结了我遇到的问题,即通过 ASP.NET Http 处理程序的请求不支持特定于范围的请求。因此,我将不得不在我的 Web 服务中手动实现对特定范围请求的支持。

于 2015-07-21T18:52:07.627 回答