BITS上传响应超时

时间:2013-03-04 13:39:57

标签: timeout microsoft-bits

在我们的Windows应用程序中,我们使用BITS上传协议(带上传回复)将文件上传到我们的服务器,对待它们,并等待响应。 有时服务器详细说明可能很长(> = 10分钟),我们遇到超时问题。

根据文件http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MC-BUP].pdf

  

3.1.2.2上传响应超时此计时器限制接收2.2节中提到的任何响应所需的时间   服务器,不管涉及的状态转换。默认   价值是5分钟;法律范围是任何正值。

有没有办法更改默认值5分钟?如何设置更高的值?

感谢。

2 个答案:

答案 0 :(得分:0)

来自维基百科,上传职位BITS requires IIS web server with BIT server extension

  

BITS 1.0版仅支持下载。从版本1.5,BITS   支持下载和上传。上传需要IIS网站   服务器,带有BITS服务器扩展,在接收端。

我不知道您如何使用BITS协议,但this page解释了如何使用BITS Admin commnad-line工具创建下载或上传作业并监控其进度。下面这个开关可以帮助你:

  

/ SetNoProgressTimeout 作业超时

     

设置BITS尝试传输的时间长度(以秒为单位)   发生第一次瞬态错误后的文件。

this other page描述了BITS IIS扩展属性。我引用了你可能需要的那个。

  

后台智能传输服务(BITS)使用ISAPI进行扩展   IIS支持上传作业。 BITS使用这些属性来确定   如何上传文件。

     

BITSSessionTimeout 数据类型: DWORD

     

如果没有进展,则保持连接的秒数   上传文件;进度时重置计时器。 BITS   如果达到超时,则关闭连接并清除数据   与会话相关联。

答案 1 :(得分:0)

我们尝试修改某些注册表项(例如TimeQuantaLenght),但它没有解决问题。

要解决,首先我们要扩大网站的request timeout

doc中报告的第二个:

  

服务器应用程序必须在五分钟内提供响应。如果   服务器应用程序在五分钟内没有回复该作业   进入瞬态错误状态。当重试延迟到期时,   BITS服务器将向服务器应用程序发送另一个通知   (应该编写服务器应用程序来处理重复   通知)。

所以我们处理重复的请求!如果Transient Error BITS协议尝试在MinimunRetryDelay定义的时间后重新开始传输。

我们自己管理这个问题;我们使用GUID识别每次传输,如果传输的GUID进入瞬态错误状态,并重新启动,我们检查传输是否已经发生并处理相应的操作。