标签: microsoft-bits

TIdHTTPServer是否与Microsoft BITS兼容

我们正在尝试使用TIdHTTPServer组件为我们的软件编写更新服务器.目前我们正在提供一个XML文件,列出可用的更新及其文件版本等.当客户端程序找到更新版本时,它应该开始使用BITS下载它.

现在这是我们遇到问题的地方,我们的程序正在请求XML文件并看到有可用的更新.然后它创建一个BITS作业来下载它,但是BITS一直报告下载失败.我们可以使用相同的URL和IE/Firefox/Chrome下载文件.

所以我的问题:

TIdHTTPServer与BITS兼容吗?

我问这个,因为我发现有一些工作的下载要求.
BITS下载的HTTP要求

BITS支持HTTP和HTTPS下载和上传,并要求服务器支持HTTP/1.1协议.对于下载,HTTP服务器的Head方法必须返回文件大小,其Get方法必须支持Content-Range和Content-Length标头.因此,除非ASP,ISAPI或CGI脚本支持Content-Range和Content-Length标头,否则BITS仅传输静态文件内容并在尝试传输动态内容时生成错误.

BITS可以使用HTTP/1.0服务器,只要它符合Head和Get方法要求即可.

要支持下载文件范围,服务器必须支持以下要求:

允许MIME标头包含标准的Content-Range和Content-Type标头,以及最多180个字节的其他标头.在HTTP标头和第一个边界字符串之间最多允许两个CR/LF.

delphi http indy httpserver microsoft-bits

10
推荐指数
2
解决办法
1507
查看次数

什么是BITS最好的免费C#包装器?

BITS,Windows后台智能传输服务.

看起来有一些C#包装器来管理对BITS的互操作,是否有人对最好的一个有任何意见?

c# windows interop microsoft-bits

8
推荐指数
1
解决办法
2148
查看次数

字段初始值设定项不能引用非静态字段,方法或属性

以下是我的代码:

private BitsManager manager;
private const string DisplayName = "Test Job";       

public SyncHelper()
{
    manager = new BitsManager();
}        

BitsJob uploadBitsJob = manager.CreateJob(DisplayName, JobType.Upload);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

A field initializer cannot reference the non-static field, method, or property 'BITSIntegrationModule.SyncService.SyncHelper.manager'

c# microsoft-bits bits-service

8
推荐指数
1
解决办法
2万
查看次数

C#中的后台智能传输服务

任何人都可以在c#中成功使用它,或者有更好的替代品吗?还有什么好的工作项目,我可以看一看并获得良好的感觉?我遇到的大多数项目都是用C++编写的,并且正在寻找一个C#项目

c# upload download file-transfer microsoft-bits

6
推荐指数
1
解决办法
6110
查看次数

后台智能传输服务和 Amazon S3

我正在使用 SharpBITS 从 AmazonS3 下载文件。

> // Create new download job. BitsJob
> job = this._bitsManager.CreateJob(jobName, JobType.Download);
> // Add file to job.
> job.AddFile(downloadFile.RemoteUrl, downloadFile.LocalDestination);
> // Resume
> job.Resume();
Run Code Online (Sandbox Code Playgroud)

它适用于不需要身份验证的文件。但是,一旦我为 AmazonS3 文件请求添加身份验证查询字符串,来自服务器的响应就是 http state 403 -unauthorized。Url 在浏览器中工作文件。

这是来自 BIT 服务的 HTTP 请求:

HEAD /mybucket/6a66aeba-0acf-11df-aff6-7d44dc82f95a-000001/5809b987-0f65-11df-9942-f2c504c2c389/v10/summary.doc?AWSAccessKeyId=AAAAZ5SQ76RPQQAAAAA&Expires=1265489615&Signature=VboaRsOCMWWO7VparK3Z0SWE%2FiQ%3D HTTP/1.1
Accept: */*
Accept-Encoding: identity
User-Agent: Microsoft BITS/7.5
Connection: Keep-Alive
Host: s3.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

与 Web 浏览器的唯一区别是请求类型。Firefox 发出 GET 请求,BITS 发出 HEAD 请求。Amazon S3 HEAD 请求和查询字符串身份验证是否存在任何问题?

问候, 布拉兹

amazon-s3 http-headers microsoft-bits bits-service

5
推荐指数
1
解决办法
2018
查看次数

以编程方式确定最大传输速率

我有一个问题,需要我计算可用的最大上传和下载,然后将我的程序的使用限制为它的一个百分比。但是,我想不出找到最大值的好方法。

目前,我能想出的唯一解决方案是在客户端和服务器之间传输几兆字节的数据,然后测量传输所需的时间。然而,这种解决方案是非常不可取的,因为对于 100,000 个客户端,它可能会导致我们服务器的带宽使用量增加太多(已经太高了)。

有没有人有解决这个问题的方法?

请注意,我最感兴趣的是在数据离开 ISP 网络之前传输数据的限制;我认为这很可能是导致其他程序通信降级的瓶颈发生的地方。不过,如果我错了,请纠正我。

编辑:经过进一步调查,我认为这是不可能的;在离开 ISP 网络时,要准确测量最大传输速率涉及的变量太多。不过,让问题保持开放,以防有人提出准确的解决方案。

c networking tcp bandwidth microsoft-bits

5
推荐指数
1
解决办法
977
查看次数

如何阅读后台智能传输服务(BITS)日志?

如何阅读后台智能传输服务(BITS)日志?

我找到了以下博客:

http://blogs.msdn.com/b/heaths/archive/2008/07/07/enable-bits-logging.aspx

但是它创建了我无法读取的二进制日志文件

%WINDIR%\ System32 \ bits.log

有人可以帮助我吗?

logging microsoft-bits bits-service

5
推荐指数
1
解决办法
5016
查看次数

在Windows命令提示符/ PowerShell中下载大文件

我现在有点没钱了...

尝试1

在Powershell中使用iwr。它可以工作,显示进度,但速度慢10倍,直到文件在内存中才刷新:(。

 powershell -command "& { iwr https://github.com/mitchellspryn/AirsimHighPolySuv/releases/download/V1.0.0/SUV.zip -OutFile SUV.zip }"
Run Code Online (Sandbox Code Playgroud)

尝试2

在Powershell中使用.Net webclient。它有效,但是没有任何进展,您无法通过Ctrl + C :(。终止。

powershell -command "& { (New-Object System.Net.WebClient).DownloadFile('https://github.com/mitchellspryn/AirsimHighPolySuv/releases/download/V1.0.0/SUV.zip', 'SUV.zip') }"
Run Code Online (Sandbox Code Playgroud)

尝试3

在Powershell中使用BITS传输。它可以工作,显示进度并且几乎完美……直到您发现它神秘地在GitHub上不起作用(错误禁止403)!

powershell -command "& { Start-BitsTransfer -Source https://github.com/mitchellspryn/AirsimHighPolySuv/releases/download/V1.0.0/SUV.zip -Destination SUV.zip }"
Run Code Online (Sandbox Code Playgroud)

powershell command-line webclient-download microsoft-bits

5
推荐指数
2
解决办法
2220
查看次数

BITS仍然是一个很好的后台更新技术吗?

我的一个爱好应用程序使用SQLite后端来存储应用程序数据.设置应用程序,以便用户可以单击典型的"检查更新"按钮,该按钮将查询Web服务以查看是否有可用的更新.如果是,则用户单击"更新"按钮并下载新数据库(通过HTTP),然后将其安装在应用程序中.此过程目前是"模态的",因为在下载和安装完成之前,用户不能在应用程序中执行任何其他操作.

我正在努力更新应用程序,我想做的一件事是让这个更新过程发生在幕后,Windows Update.当应用程序大火了,该服务将被查询,如果有可用的更新,它会自动下载,但在后台,因此用户可以继续做自己的工作.下载完成后,系统将提示用户安装更新.

我已经广泛地看着BITS,即使没有任何的API我见过的更新,以利用该技术,我已经看到了一些示例代码,我相信我可以使它发挥作用.

但是这是处理数据库"后台更新"的最佳途径,还是有其他解决方案/方法?

background-process microsoft-bits

4
推荐指数
1
解决办法
338
查看次数

BITS使用多域传输文件

如何在不同域的服务器之间传输文件?

i.e
PS C:\Users\Desktop> Import-Module bitstransfer
PS C:\Users\Desktop> $c=get-credential
PS C:\Users\Desktop> start-bitstransfer -Credential $c -source \\server\c$\test.txt -destination .
Run Code Online (Sandbox Code Playgroud)

输出是:

Start-BitsTransfer : Cannot find path '\\server\c$\test.txt' because it does not exist.
Run Code Online (Sandbox Code Playgroud)

我有权探索该服务器,但我无法使用BitsTransfer.

它只有在我将\ server\c $作为共享挂载时才有效(即使用"net use"命令),但我想逃避它.

谢谢

powershell powershell-2.0 microsoft-bits

4
推荐指数
1
解决办法
6574
查看次数