从Owin自托管web服务下载大文件

本文关键字:服务 下载 文件 web Owin | 更新日期: 2023-09-27 18:03:35

我目前正在开发一个在我的机器上运行的Owin自托管web服务,它允许同行(其他机器)使用微软的BITS从其虚拟目录下载文件。下载将与相对较小的文件一起工作,但每当我必须下载大文件(超过2Go)时,我都会从BITS得到这个错误:

"服务器不支持必要的HTTP协议。背景智能传输服务BITS (Intelligent Transfer Service)需要服务器的支持Range协议头。"

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

我找不到很多关于我要做的事情的信息,除了找出如何知道服务器是否支持范围请求。

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

从Owin自托管web服务下载大文件

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