| | | | | | | [文章信息] | | | 作者: | 陶刚编译 | | 时间: | 2003-08-12 | | 出处: | yesky | | 责任编辑: | 方舟 | |
| [文章导读] | | | .NET框架组件和Windows有一些有趣的API,它们能够建立通过网络自动更新的应用程序...... | |
| |
|
| | | |
|
|
|
|
|
BITS的一些考虑因素
BITS设计为从不初始化网络连接。这样的设计最好,因为你不希望无需连接的应用程序仅仅为了检查更新而拨号到一个ISP。但是BITS 1.0和1.5受收到Internet连接共享限制的影响。如果系统A共享系统B的Internet连接,在系统A上的初始化BITS工作的应用程序可能引起系统B初始化拨号,这是因为当前BITS服务的实现没有考虑共享连接的问题。
这是一个难以解决的问题,但是可能在BITS的未来版本中会有一个补丁。Windows更新特性也有这个问题,使用BITS的应用程序在初始化共享连接的拨号与Windows没有什么区别。
BITS的最后一个问题是工作文件的一致性。如果你下载的工作包含多个文件,BITS不认为工作完成了,也不认为文件到达了它们的最后目的地,直到所有文件都可用。但是,BITS无法知道在其它文件已经下载后,服务器上的一个文件改变了。因为这个原因,服务器上的更新可能影响客户端下载的一致性。
有两种方法解决该问题。第一种是限制BITS下载为单个文件的工作,这是我在例程中使用的方法。第二种方法是保存单个工作的所有文件到服务器的同一个目录中。当对这些文件有更新时,在服务器上为新文件集合建立一个新目录。使用这种方法,在原来的工作上的传输中的客户端不会受到新文件集合的影响,这种解决方法的问题是服务端的文件定位改变了,客户端需要一条途径来获取新文件的位置。
如果你需要查找BITS代码,BitsAdmin.exe是一个最好的帮手。该工具随Windows XP光盘分发,在Support\Tools子目录下。为了节省时间,我没有安装该工具,而是直接将.exe从Support.cab文件中解压出来。
当你第一次熟悉BITS下载时,BitsAdmin.exe工具非常有用。几乎该API的所有特性都通过这个命令行工具的选项暴露了。你能枚举工作、检查工作状态、查看详细的工作和错误信息;你能初始化、挂起、继续和结束下载工作;最后,你能改变工作的优先级并从BitsAdmin.exe中取消工作。
Windows API通过相关工具能够像这样访问的情况很少。实际上,脚本(例如批处理文件)可以通过BitsAdmin.exe工具完整地使用BITS。BITS是发现和下载更新的一个强大的解决方案,对于大多数应用程序来说,它的缺陷很少。现在我们看看安全性问题。
|
|
|
|
|
|
|
|