BITS Server Extensions

The BITS Server Extensions allow BITS clients to upload data with throttling and restartability.


Configuring BITS Extensions

Use the BITS Extensions property page in MMC to configure the BITS Extensions for an IIS virtual directory. To open the property page, click properties on virtual directory in MMC and select the "BITS Extensions" tab.

Enable BITS Uploads

Enables uploads from the BITS client into this virtual directory. If not enabled, BITS clients that attempt an upload will be denied access.

Use Inherited Configuration

Use the default configuration for this virtual directory. If this directory is embedded in another virtual directory and the outer virtual directory defines a custom configuration, then that configuration will be used instead of the defaults.

Use Custom Configuration

Use the configuration information from this property page. No default or inherited settings will be used.

Limit Maximum Upload Size

If enabled, sets the maximum amount of data that can be uploaded in a single BITS job. If not enabled, an unlimited amount of data will be permited.

Delete Incomplete Files

If enabled, incomplete uploads will be deleted if no progress is made for the specified time period. The timeout is checked each time the MSTASK cleanup work item is run. Click Schedule Cleanup to configure the frequency for which the timeout should be checked for this virtual directory.

Enable Server Farm Support

If enabled, forces a client to reconnect using the specified name instead of the name used by the client. This allows clients which are uploading to server farms to continue uploading to the same server that the upload was started with. Uploading to web farms is not recommended without enabling and configuring this feature.

Reconnect to

Specifies the name to use for reconnecting to this server. The name must uniquely indentify this server. Either a public server name or a public IP address may be used.

Fallback after

After hitting an error, clients will continue attempting to reconnect to the server using the Reconnect To name until this timeout is exceeded. After the timeout is exceeded, clients will fallback to the original name.

Enable Notifications

Enables notifications for this virtual directory. The Notification Type and Notification URL settings are required if this setting is enabled.

Notification Type

Configures the type of notification to perform after the job is uploaded.

Byref POST Notification | The server will pass the path to the completed upload file to the URL indicated by the Notification URL setting. The server may return a file to the client.
Byval POST Notification | The server will pass the entire completed upload file to the URL indicationed by the Notification URL as the entity of the POST. The response entity will be sent to the client.

Notification URL

Indicates the URL to pass the completed upload file to via a POST request if the Notification Type is Byval POST Notification or Byref POST Notification. The URL may be absolute or self-relative. If the URL is self-relative, then the original request URL is used as the base.

Schedule Cleanup

Configures the frequency for which BITS Extensions should scan this virtual directory for incomplete files. If an incomplete upload is found, the file is checked against the timeout value. If progress has not been made on this file for longer then the timeout period, the upload is automatically cancelled. This setting is not affected by inheritance and applies only to this virtual directory.

Cleanup Now

Starts a check for files which have had no progress since the timeout period. To remove all incomplete files for this virtual directory, set the timeout value to 0 before running the cleanup.


Disabling Scripting

IIS allows a user to set the script and execute permissions on a Virtual Directory separately from its Write permissions. Usually, users who allow script and execute on a virtual directory disallow writing to that virtual directory. When a virtual directory is BITS-Upload enabled, then even though the “Write” permissions on the virtual directory has been disallowed, the users can write to this directory via BITS from the client side. To protect the server, BITS disables all Script and Execute permissions on a BITS-Upload enabled Virtual Directory. To make sure that this virtual directory is secure, BITS Server extensions will check to make sure that these permissions are disabled before responding to any client request for uploading data. If these permissions are enabled at any time, BITS Server Extensions will deny all upload requests thereafter, until the permissions are disabled again. Every time BITS Server extension denies a request in such an environment, it will write a log entry in the IIS logs.