服务器应用程序的通知协议

BITS 使用 BITSServerNotificationType 属性来确定 BITS 如何将上传文件的内容发送到服务器应用程序。 如果 BITSServerNotificationType 属性设置为 1,BITS 会在标头中传递上传文件的位置。 如果 BITSServerNotificationType 属性设置为 2,BITS 在请求正文中传递上传文件的内容

有关 BITS 如何处理服务器应用程序中的错误的详细信息,请参阅处理服务器应用程序错误

在标头中发送上传文件的位置

如果 BITSServerNotificationType 属性设置为 1,BITS 会在标头中将上传和答复文件的位置传递给服务器应用程序。 服务器应用程序打开上传文件,处理数据,然后生成答复文件。 默认情况下,BITS 从服务器应用程序收到响应后,会从服务器中删除上传和答复文件。 若要使 BITS 将上传文件复制到作业中远程文件名指定的位置,请在响应中包含 BITS-Copy-File-To-Destination 标头。 如果不包含标头,并且想要保存上传和答复文件,则必须在响应之前将上传和答复文件复制到新位置。 下表显示了请求标头。

请求标头 说明
BITS-Original-Request-URL 包含作业中指定的远程名称。
BITS-Request-DataFile-Name 包含已上传数据的完整路径。
BITS-Response-DataFile-Name 包含 BITS 希望服务器应用程序写入响应的完整路径。

下表显示了响应标头。

响应头 说明
BITS-Static-Response-URL 可选。 包含要用作响应的静态数据文件的绝对 URL(不指定相对 URL)。 BITS 客户端必须可访问静态数据文件。 如果使用此标头,请不要创建 BITS-Response-DataFile-Name 请求标头中指定的响应文件。 请注意:BITS 不会为你删除此文件。
BITS-Copy-File-To-Destination 可选。 默认情况下,如果 BITSServerNotificationType 属性设置为 1 或 2,则 BITS 服务器不会将上传文件复制到作业中远程文件名指定的位置。 若要让 BITS 将文件复制到作业中远程文件名指定的位置,请发送此响应标头。 可以指定任何值;BITS 不使用该值。 请注意:远程文件路径中的文件夹必须存在。

以下请求显示 BITS 将上传文件的位置发送到服务器应用程序。

POST https://myserver/myvdir/handle_upload.asp?ACCOUNT=873112 HTTP/1.1
Host: myserver
BITS-Original-Request-URL: https://front-end-server/vdir
BITS-Request-DataFile-Name: c:\physical-path\BITS-Sessions\{5e53c221-f2d6-4bf2-
b994-1dc43ceaca8d}\request
BITS-Response-DataFile-Name: c:\physical-path\BITS-Sessions\{5e53c221-f2d6-4bf2-
b994-1dc43ceaca8d}\response
Content-Length: 0

下面显示了服务器应用程序对 BITS 的答复;答复放置在 BITS-Response-DataFile-Name 请求标头指定的文件中。

HTTP/1.1 200 - OK
Content-Length: 0

在请求正文中发送上传文件

如果 BITSServerNotificationType 属性设置为2,BITS 将在请求的正文中发送上传文件。 在请求的正文中发送上传文件可以让现有的脚本和应用程序以最小的修改进行工作。 上传文件和答复文件分别在请求和响应中传递。 下表显示了请求标头。

请求标头 说明
BITS-Original-Request-URL 包含作业中指定的远程名称。

下表显示了响应标头。

响应头 说明
BITS-Static-Response-URL 可选。 包含要用作响应的静态数据文件的绝对 URL(不指定相对 URL)。 BITS 客户端必须可访问静态数据文件。 如果使用此标头,请不要在流中包含响应。 请注意:BITS 不会为你删除此文件。
BITS-Copy-File-To-Destination 可选。 如果 BITSServerNotificationType 属性设置为 1 或 2,则 BITS 服务器不会将上传文件复制到作业中远程文件名指定的位置。 若要让 BITS 将文件复制到远程文件名指定的位置,请发送此响应标头。 可以指定任何值;BITS 不使用该值。 请注意:远程文件路径中的文件夹必须存在。

以下请求显示 BITS 在请求正文中将上传的文件传递给服务器应用程序。

POST https://myserver/myvdir/handle_upload.asp?ACCOUNT=873112 HTTP/1.1
Host: myserver
BITS-Original-Request-URL: https://front-end-server/vdir
Content-Length: 80000

80000 bytes of upload data goes here

以下答复显示服务器应用程序在响应正文中将答复数据传递给 BITS。

HTTP/1.1 200 - OK
Content-Length: 100

100 bytes of reply data goes here

处理服务器应用程序错误

请参阅处理服务器应用程序错误