【问题标题】:BITS Upload response timeoutBITS 上传响应超时
【发布时间】:2013-03-04 13:39:57
【问题描述】:

在我们的 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 分钟的默认值?如何设置更高的值?

谢谢。

【问题讨论】:

  • 所以,客户端超时等待服务器响应。您是在编写服务器代码,还是编写客户端代码?如果是客户端,您使用的是哪个 API(如果有)?
  • 我正在编写客户端,使用我们的专有语言我只能使用 BITSADMIN.exe 命令行驱动 BITS 命令(我知道这很糟糕......)我不能使用任何 API。与此同时,我可能找到了两个解决方案: - 超时的服务器端句柄 - 设置注册表项以扩大超时。我正在测试它们...
  • 我看不出服务器如何处理它,除非它可以向客户端发送一个 HTTP 标头,建议它应该等待多长时间。但是,从文档看来,计时器是客户的私人事务。因此,注册表项将是最有可能的选择。你确定你真的想使用 BITS 作为请求/响应协议吗?服务器在完成后回调客户端会更有意义。 5 分钟对于客户端保持会话来说是相当长的空闲时间。
  • 我只能使用 BITS 如果不重写所有内容,我别无选择 :-( 几个小时后我会写出解决方案,花了很长时间才找到答案!感谢您的关注.
  • 很遗憾你不能安排它以便服务器立即返回一个回复,其中包含“回复”准备好的时间估计,以及一个标识符在哪里获取它。然后您的客户可以稍后安排 BITS 下载作业。

标签: timeout microsoft-bits


【解决方案1】:

来自维基百科,用于上传作业BITS requires IIS web server with BIT server extension

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

我不知道您是如何使用 BITS 协议的,但this page 解释了如何使用 BITS Admin 命令行工具来创建下载或上传作业并监控其进度。下面的这个开关可能会对您有所帮助:

/SetNoProgressTimeout 作业超时

设置 BITS 尝试传输数据的时间长度(以秒为单位) 发生第一个暂时性错误后的文件。

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

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

BITSSessionTimeout 数据类型:DWORD

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

【讨论】:

【解决方案2】:

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

为了解决,首先我们放大站点的request timeout

第二个如doc

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

所以我们处理重复的请求!对于Transient Error,BITS 协议尝试在为MinimunRetryDelay 定义的时间之后重新启动传输。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 2018-10-15
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多