BITS作业尝试下载zip文件时引发错误

时间:2018-08-13 22:52:38

标签: http-headers httphandler microsoft-bits

当尝试从远程服务器下载zip文件时,我们从BITS作业中收到此错误(我们在该服务器上为zip文件实现了HTTP处理程序):

错误代码:0x80200013-服务器不支持必要的HTTP协议。后台智能传输服务(BITS)要求服务器支持Range协议标头。
错误上下文:0x00000005-处理远程文件时发生错误。

我的理解是该错误表明我们应该添加Content-Range标头。我添加了标题,现在代码如下:

context.Response.ContentType = "application/x-zip-compressed";
context.Response.AppendHeader("Content-Disposition", string.Format("inline; fileName={0}", downloadFileName));
context.Response.AppendHeader("Content-Range", "bytes " + start + "-" + end + "/" + size);
context.Response.AppendHeader("Content-Length", fs.Length.ToString());
fs.CopyTo(context.Response.OutputStream);

context.Response.Flush();
context.Response.Close();

,但我一直收到相同的错误。

我也尝试了以下行:

context.Response.AppendHeader("Accept-Ranges", "bytes");

,但出现另一个错误:“与服务器的连接异常终止”。 下载链接在浏览器中工作正常。

我将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

该错误表示您的服务器不符合HTTP Requirements for BITS Downloads。服务器接受HEAD请求吗?

BITS用户在定位不兼容的服务器时,应使用BITS_JOB_PROPERTY_DYNAMIC_CONTENTBG_JOB_PRIORITY_FOREGROUND配置下载作业。请记住,如果(如果由于连接问题或系统重新启动而导致)下载中断,那么这将导致BITS必须从头开始重新下载。