Background Intelligent Transfer Service

Background Intelligent Transfer Service (BITS) helps you transfer large amounts of data without degrading network performance. It does this by transferring data in small chunks, utilizing unused bandwidth as it becomes available, and reassembling the data at the destination. BITS is supported on Microsoft® Windows Server 2003 family operating systems and on Microsoft® Windows 2000 Servers.

BITS downloads and uploads both file names, as Universal Resource Locators (URLs), and data. Any transfers that are interrupted by network disconnections or by computer shutdowns and restarts resume when network connectivity is re-established.

BITS Server Extensions is part of Internet Information Services (IIS) and has the following components:

  • BITS management console snap-in, for configuring and managing BITS by using Microsoft Management Console (MMC).
  • BITS server extension ISAPI, which is used for BITS data transfer.

If you want client computers to be able to use BITS to upload files to a server, you must configure an IIS server with BITS Server Extensions installed and activated.

For more information, see the following topics and Web sites:

  • To install BITS Server Extensions, see To install BITS Server Extensions.
  • To configure BITS Server Extensions, see To configure BITS Server Extensions.
  • To review BITS-specific security information, see Concepts.
  • To review the BITS PSDK, see Background Intelligent Transfer Service (http://www.microsoft.com/).


Install BITS Server Extensions

To install BITS Server Extensions

  1. Click Start and then click Control Panel.
  2. Select Add or Remove Programs and then click Add or Remove Windows Components.
  3. From the Windows Components Wizard, select Application Server, and then click Details.
  4. In the Application Server dialog box, check Internet Information Services (IIS), and then click Details.
  5. In the Internet Information Services (IIS) dialog box, check Background Intelligent Transfer Service (BITS) Server Extensions.

    By default, both the BITS server extension ISAPI and the BITS management console snap-in are installed. To deselect either one, click Details in the Internet Information Services (IIS) dialog box to open the Background Intelligent Transfer Service (BITS) server extension dialog box.

  6. Close the IIS and Application Server dialog boxes to return to the Windows Component Wizard. Then click Next to begin the installation of BITS Server Extensions as part of Application Server. The wizard completes the installation.

Notes

  • To install BITS Server Extensions, you must be a member of the Administrators group on the local computer, or you must have been delegated the appropriate credentials. If the computer is joined to a domain, members of the Domain Admins group might be able to perform this procedure. As a security best practice, consider using the runas command to perform this procedure. For Windows 2000 Server family products, see the online Help documentation or go to Windows 2000 Product Documentation (http://www.microsoft.com/) and select Help for the appropriate product.
  • You might need your Windows Server 2003 family CD available when you install BITS Server Extensions, in case the installation process requires additional files.
  • You can install BITS on Windows 2000 Server by installing the Platform SDK Redistributables for Windows 2000 (http://www.microsoft.com/). Windows 2000 Server uses IIS 5. For help using IIS 5, see Windows 2000 Server Documentation for Internet Information Server (http://www.microsoft.com/).
  • To install BITS on a client computer, open the SUPPORT\TOOLS directory on the Windows XP Professional CD, disk image, or network directory, and double-click SUPTOOLS.EXE. The BITS tool file is Bitsadmin.exe.
  • Internet Information Services is installed on the server you are using when the console opens. If you want to connect to another computer, add that computer in the Connect to Computer dialog box by right-clicking Internet Information Services in the console tree and selecting Connect.


Configure BITS Server Extensions

To configure BITS Server Extensions

  1. Click Start, click Administrative Tools, and then click Internet Information Services (IIS) Manager.
  2. Click to expand the nodes under the server where BITS Server Extensions is installed, and then click to expand Web Sites.
  3. Right-click the virtual directory for which you want to configure BITS Server Extensions, and then select Properties.
  4. In the Properties dialog box, select the BITS Server Extensions tab.

    5. The following sections explain the settings on the BITS Server Extensions tab.

    Allow clients to transfer data to this virtual directory

    Enables uploads from BITS clients into the virtual directory. If this check box is not checked, BITS clients attempting an upload are denied access.

    Use default settings

    Precludes configuring BITS Server Extensions for the virtual directory. The remaining settings cannot be configured unless you select Customize settings.

    Note

    • Configuration settings can be inherited. If the directory is a subdirectory of another virtual directory and the parent virtual directory defines a custom configuration, the configuration of the parent virtual directory is used instead of the default settings.

    Customize settings

    Allows you to configure this property page according to the settings specified in Custom settings.

    Custom settings

    Permits selection of maximum file size and allows you to specify a time limit after which incomplete jobs can be deleted.

    Maximum file size

    Defines the maximum size of a file that can be uploaded in a single BITS job. If this setting is not enabled, clients can upload files of any size.

    Delete incomplete jobs after

    If enabled, permits incomplete upload files to be deleted by the cleanup process if no progress has been made within the specified time period. Deletions are performed only when the cleanup process is scheduled to run, or when you manually run a cleanup. See Schedule Cleanup for information about scheduling the cleanup process. See Run Cleanup Now for information about manually running a cleanup.

    Enable server farm support

    If enabled, instructs the client to try to reconnect to the server of choice instead of the original upload URL used by the client. Server farms can be configured two ways: by using a shared volume for the upload virtual directory, or by using server local storage for the uploaded files. If you want to use local storage, this option enables the client computer to reconnect to the same server computer in the server farm. Uploading to server farms and using local storage are not recommended without enabling and configuring Enable server farm support.

    Reconnect to IP address

    Specifies the public IP address to use for reconnecting to this server. A server usually has two IP addresses. One points outward and is reachable by client systems. The other belongs to the inner (protected) network. You should specify the outward-pointing IP address here.

    Notes

    • You can specify a DNS name here only if each computer in your Web farm has an independent DNS name that can be resolved by client computers.
    • Enable server farm support must be checked in order to configure this setting.

    Use original IP address after

    Specifies the amount of time during which a client computer must reconnect to the server specified in Reconnect to IP address. If the client computer does not connect to the server during this time, the client computer must attempt to connect to the original DNS name specified in the upload URL.

    Allow notifications

    Enables notifications for this virtual directory. Both Notification type and Notification URL settings are required if this setting is enabled. For additional information about the notification settings on the BITS Server Extensions tab on the Properties page for the virtual directory, see Using BITS notifications in Related Topics.

    Notification type

    You can send either the file name or the data. If Send the file name is selected, the server passes the path for the completed upload file to the URL specified by the Notification URL setting. The server returns a file to the client computer as a response. If Send the data is selected, the server passes the entire upload file to the URL specified by the Notification URL as a POST. The response is sent to the client computer.

    Notification URL

    Specifies the URL to pass the completed upload file to via a POST request if the Notification type is either Send the file contents or Send the file name. The URL can be absolute or self-relative. If the URL is self-relative, the original request URL is used as the base.

    Schedule Cleanup

    Configures the frequency with which BITS Server Extensions scans the virtual directory for incomplete upload files. If an incomplete file is found, it is checked against the time-out value set in Delete incomplete jobs after. If the time-out period has elapsed since progress was made on this file, the upload is cancelled and any partial file contents are deleted. This setting is not affected by IIS property inheritance and applies only to the virtual directory.

    Run Cleanup Now

    Immediately starts a cleanup by scanning the virtual directory for incomplete upload files. If an incomplete file is found, it is checked against the time-out value set in Delete incomplete jobs after. If the time-out period has elapsed since progress was made on this file, the upload is cancelled and any partial file contents are deleted. To remove all incomplete files from this virtual directory, set the time-out value to 0 before running the cleanup.

Notes

  • To install BITS Server Extensions, you must be a member of the Administrators group on the local computer, or you must have been delegated the appropriate credentials. If the computer is joined to a domain, members of the Domain Admins group might be able to perform this procedure. As a security best practice, consider using the runas command to perform this procedure. For Windows 2000 Server family products, see the online Help documentation or go to Windows 2000 Product Documentation (http://www.microsoft.com/) and select Help for the appropriate product.
  • After you configure settings on the BITS Server Extensions tab and click Apply or OK, a security message appears, indicating that BITS will shut down all Run script and Execute permissions for this virtual directory. When you click OK, the Run Cleanup Now button becomes enabled. For more information about this security message, see Securing virtual directories in Related Topics.
  • BITS Server Extensions must be in the Allowed state in order to function. To determine the state, expand Web Service Extension in the IIS console tree. Locate the extension state in the right panel. Click Allowed if the extension is in the Prohibited state.
  • For information about virtual directories, see Help for Internet Information Server.

Related Topics

Using BITS notifications

Securing virtual directories


Concepts

This topic describes how to use BITS notifications, and also provides security-related information for BITS.

Using BITS notifications

BITS Server Extensions provides a way to notify Web applications of the arrival of data from a client computer to the server, and for that server to generate a reply to the client computer. You can configure this mechanism for each virtual directory on the server by using controls in the Allow notifications section of the BITS Server Extensions tab.

When Allow notifications is checked, two controls become available for configuration: Notification type and Notification URL.

Notification type requires that you select either Send the file name or Send the data.

  • Send the file name passes only the name of the file and tells the server the location the location of that uploaded file, as well as where to record a reply. Your application is responsible for opening the request (uploaded) data file and for creating any response data.
  • Send the data passes all of the data and replies directly between the server and application and specifies the locations for the data and replies.

When BITS Server Extensions receives all of the uploaded data from the application on the client computer, it generates a notification reply in the Notification URL that you specify. For Send the file name, BITS writes the response to a URL. For Send the data, BITS writes the data and response to a temporary file for the client computer to download.

BITS uses IIS security mechanisms. BITS notifications are generated solely in the security context specified for the client system. This context is set in Authentication Methods, which is accessed from the Directory Security tab of the Properties page for the virtual directory.

Securing virtual directories

IIS allows a user to set Run script and Execute permissions for a virtual directory separately from Write permissions. Customarily, administrators disallow writing to the virtual directory to prevent clients from uploading executable scripts or programs to a directory and then executing them.

However, when a virtual directory has been enabled for BITS uploads, clients can write to this directory by means of BITS uploads, even though write permissions on the virtual directory have been disallowed. To protect the server, BITS Server Extensions disables all Run script and Execute permissions on a virtual directory that has been upload-enabled for BITS. To keep the virtual directory secure, BITS Server Extensions does not respond to any client requests for uploading data until permissions are disabled. If these permissions are enabled at any time, BITS Server Extensions denies all upload requests until the permissions are disabled again. Whenever BITS Server Extensions denies a request, it writes an IIS log entry.

For more information about securing virtual directories, see the online Help.

Using BITS with SSL

BITS Server Extensions is installed with a default configuration that does not secure BITS traffic during data replication. If you want to use BITS to transfer sensitive data, you should do so over a secure connection, such as Secure Sockets Layer (SSL).

For general information about SSL, see the online Help.