• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Tony Qu
我的软件工作室
博客园    首页    新随笔    联系   管理     

Microsoft Updater Application Block 1.3.3 BITSDownloader类设计 [翻译]

Microsoft Updater Application Block BITSDownloader类设计

译者:Tony Qu

BITSDownloader类是一个从http服务器拷贝文件的下载器,它是Updater Application Block的默认下载器。

问题描述
BITSDownloader类被设计用于解决以下问题
1. 一个可以被应用程序升级器使用的下载器类,该类能够从一个http服务器上下载需要的文件。
2. 下载文件时的健壮、可靠并且安全的连接是必需的。

设计目的、权衡与问题
下面是Updater Application Block开发人员认识到的设计目的和问题
1. 渴望通过异步下载机制加快速度
2. 下载器必须同时支持HTTP和HTTPS两种连接。
3. 下载器必须足够健壮以应对不可预料的事件或进程中止
4. 决定使用后台智能传输服务建立一个下载器,反映了一种在异步、健壮、安全的功能和使用COM而非复杂的BITS API之间权衡。
5. 由对BITS的依赖引出的第一个主要问题是,下载器的使用受支持BITS平台的限制。BITS目前在Windows 2000,Windows XP,Windows 2003上受到支持。 [windows2000上可能没有带BITS服务,如果发现问题,建议下载BITS服务安装包]
6. BITS使用当前的登录用户身份初始化传输。如果用户在启动一个传输后登出,传输会被挂起,并且直到用户重新登录后才会继续。在应用程序升级器中,与控制器应用程序相关联的身份会被BITS使用。如果使用一个基于窗口服务的控制器初始化下载,该服务必须保证控制器服务的用户资料必须加载。(当使用本地系统时,这是默认动作)

解决方案描述
BITSDownloader类是一个从http服务器拷贝文件的下载器,该类实现了IDownloader接口,并且能够被应用程序升级器作为一个下载器动态加载。

具体实现
BITSDownloader类位于Microsoft.ApplicationBlocks.ApplicationUpdater.Downloaders命名空间。它使用了许多COM交互类来调用BITS API。
当使用BITSDownloader类时,BITS Windows Service必须启动。你可以手动启动服务管理工具,或者通过键入net start BITS命令。
默认的BITS Windows服务安装已经被配置,如果你没有手动启动BITS服务,该设置能使该服务在需要的时候自动启动。

注意:你可以使用BITS传输静态内容,比如可执行文件、文本文件等,但不需要任何设置。如果你传输的是动态内容,比如ASP页面或者CGI脚本,你必须确认被拷贝的文件支持Content-Range和Content-Length头。更多信息可以参考MSDN上的BITS SDK Documentation


版权声明:本文由作者Tony Qu原创, 未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
posted @ 2005-03-05 22:46  找事的狐狸  阅读(1306)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3