我目前正在开发一个在我的机器上运行的Owin自托管Web服务,它允许对等体(其他机器)使用microsoft's BITS从其虚拟目录下载文件。下载将适用于相对较小的文件,但每当我必须下载大文件(超过2Go)时,我从BITS收到此错误:
"服务器不支持必要的HTTP协议。背景 智能传输服务(BITS)要求服务器支持 范围协议标题。"
我想知道是否有办法在Owin中启用范围请求,或者我是否必须手动实现"数据分块"在我收到的请求中。因为改变每个请求的内容都有标题" Accept-Ranges:bytes"似乎不起作用(我认为它不会神奇地起作用,但无论如何我都试过了。)
除了找出如何知道服务器是否支持范围请求之外,我还无法找到有关我要做的事情的大量信息。
有this question似乎与我的相似,但更专注于正确设置标题。它并没有真正显示代码在返回响应之前是否/如何拆分文件。还有一些关于IIS的东西,但我的网络服务并不在IIS上运行,它在客户端的机器上运行,并由Windows服务实现。
答案 0 :(得分:1)
我找到了解决问题的方法。通过对该主题的更多研究,我发现this article总结了我的问题,即通过ASP.NET Http Handler的请求不支持Range特定的请求。因此,我必须在我的Web服务中手动实现对范围特定请求的支持。