Click to Rate and Give Feedback
MSDN
MSDN Library
Windows Development
About BITS
About BITS

Use Background Intelligent Transfer Service (BITS) to transfer files asynchronously between a client and a server. There are three types of transfer jobs. A download job downloads files to the client, an upload job uploads a file to the server, and an upload-reply job uploads a file to the server and receives a reply file from the server application.

BITS 1.2 and earlier:  Upload and upload-reply jobs are not supported.

BITS continues to transfer files after an application exits if the user who initiated the transfer remains logged on and a network connection is maintained. BITS will not force a connection.

BITS suspends the transfer if a connection is lost or if the user logs off. BITS persists transfer information while the user is logged off, across network disconnects, and during computer restarts.

When the user logs on again, BITS resumes the user's transfer job. For more information, see Users and Network Connections.

BITS provides one foreground and three background priority levels that you use to prioritize transfer jobs. Higher priority jobs preempt lower priority jobs. Jobs at the same priority level share transfer time, which prevents a large job from blocking small jobs in the transfer queue. Lower priority jobs do not receive transfer time until all higher priority jobs are complete or in an error state.

Background transfers are optimal in that BITS uses idle network bandwidth to transfer the files and will increase or decrease the rate at which files are transferred based on the amount of idle network bandwidth available. If a network application begins to consume more bandwidth, BITS decreases its transfer rate to preserve the user's interactive experience.

BITS uses the Windows BranchCache for peer caching. For more information, see the BranchCache Overview.

BITS 3.0:   Starting with Windows 7, the BITS 3.0 peer caching model is deprecated. If BITS 4.0 is installed, the BITS 3.0 peer caching model is unavailable. For more information, see Peer Caching.

The following topics provide more detailed information about BITS:

Use the BITS interfaces to write applications that create and monitor transfer jobs. For details on using the BITS interfaces, see Using BITS.

 

 

Send comments about this topic to Microsoft

Build date: 3/15/2012

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Background intelligent transfer service (BITS) running on IIS7 on Windows Server 2008 R2 x64      Richard Jacquier   |   Edit   |   Show History
@kflemingsdsi - Not sure if you still need a solution for the issue you documented above, but I encountered the same issue and this is what I did to fix it:

The issue:
- Background intelligent transfer service (BITS) running on IIS7 on Windows Server 2008 R2 x64; The client receives a "An unexpected condition prevented the server from fulfilling the request." error.

Setup:
- Background intelligent transfer service (BITS) IIS server extension is installed.
- IIS7
- Windows Server 2008 R2 x64

Fix:
The Application Pool that the BITS virtual directory is running under needs the "Enable 32-Bit Applications" option to be turned off. (The "Enable 32-Bit Applications" option can be changed by viewing "Advanced Settings" for the application pool and is in the "(General)" context.) I also had the "Managed Pipeline Mode" set to 'Classic'.

You should be able to 'Browse' the BITS virtual directory if it is setup correctly (bitsadmin.exe can be access through the VS command prompt, or execute directly from C:\Program Files\Support Tools).

You can also try a test BITS upload with the following command:
bitsadmin.exe /Transfer testJob <URL of the BITS virtual directory i.e. (http://localhost/uploads/)> <full path to file you want to upload i.e. (c:\test.jpg)>

Hope this helps
Tags What's this?: Add a tag
Flag as ContentBug
BITS on Window2008 R2      kflemingsdsi   |   Edit   |   Show History
I am getting the same error no matter what I do.
The Powershell script works fine if the Destination is 2003 32 bit or 2008 32 bit.
Can't get it to work with 64 Bit 2008 R2.

PS C:\Documents and Settings\dfguser.MONITOR> Start-BitsTransfer -Credential localhost\DfgBITSUpload -Source C:\Data\CE
VAE182\CEVAE182091020072917490.CAM -Destination https://bits2008.smartdrive.net/DFGBITSFileUpload/cam/CEVAE1820910200729
17490.CAM -TransferType Upload
Start-BitsTransfer : An unexpected condition prevented the server from fulfilling the request.
At line:1 char:19
+ Start-BitsTransfer <<<< -Credential localhost\DfgBITSUpload -Source C:\Data\CEVAE182\CEVAE182091020072917490.CAM -D
estination https://bits2008.smartdrive.net/DFGBITSFileUpload/cam/CEVAE182091020072917490.CAM -TransferType Upload
+ CategoryInfo : InvalidOperation: (:) [Start-BitsTransfer], Exception
+ FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBits
TransferCommand
PS C:\Documents and Settings\dfguser.MONITOR>
Tags What's this?: bits (x) errors (x) Add a tag
Flag as ContentBug
BITS transfer is slow to resume for Local System account jobs      lothar7 ... Noelle Mallory   |   Edit   |   Show History

The BITS transfer service is intended in our installation as a
synchronization service across a fairly slow 256Kbps sattelite link between a
ship and shore installation, hence my choice of BITS in the first place since
its very rescilient and can resume jobs etc. Originally the files to be
transferred was thought to be large 1-4Mbyte but our application sync also uses a
lot of small files.

Scenario 1:
My .Net service is running as Administrator which creates BitsJobs based on
files that appear in my outbox directory. The files are transferred to
another machine. The files are small (1Kb) in size and they are transferred
at about 1 file per second. It seems the BITS scheduler needs around 1 second
to see that there is a job queued which it then transfers. This is when
creating jobs for local administrator. Everything works great except the fact
that someone needs to be logged in as administrator on the server at all
times otherwise the transfers will stop.

Scenario 2:
Same as scenario 1 except the .Net service which creates BitsJobs run as
LocalSystem(or Network Service or Local Service). In this case every file in
the case above takes about 14-15 seconds to transfer. It seems the BITS
scheduler only checks for queued jobs every 15 seconds or so. I need my
service to operate as described in scenario 1 but logged in as LocalSystem.

Does anyone have any ideas how to change the parametres of the BITS
scheduler or have any tips for what I can do. Yes packing multiple files into
one is an option but it still leaves the system with too much delay when
transferring files.

[Noelle Mallory - MSFT] Please post questions to the MSDN Forums at http://forums.microsoft.com/msdn. You will likely get a quicker response through the forum than through the Community Content.

Tags What's this?: bits (x) Add a tag
Flag as ContentBug
Processing
© 2012 Microsoft. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker