When attempting to install the ConfigMgr / SCCM client on a few remote computers, the installation failed (more like stalled out) when ccmsetup.exe tried to download the full client binary files. The download couldn’t complete and the following error was generated:
Failed to download files through BITS. Error: 0x80200013, Description The server does not support the necessary HTTP protocol. Background Intelligent Transfer Service (BITS) requires that the server support the Range protocol header.
I discovered that Microsoft KB922330 describes the issues and a workaround.
You may experience this problem if a computer is behind a firewall or behind a proxy server. This problem occurs if one of the following conditions is true:
-The proxy server environment does not support the HTTP 1.1 range request feature.
-You are behind a SonicWALL firewall device, and the Enable HTTP Byte-Range request with Gateway AV setting is not enabled for the device.
When you copy a file by using BITS in background mode, the file is copied in multiple small parts. To perform this kind of copy operation, BITS uses the HTTP 1.1 Content-Range header. If you are behind a proxy server or behind a firewall that removes this header, the file copy operation is unsuccessful.
Note When BITS copies files in foreground mode, BITS does not use this header.
Interesting… changing the BITS priority will work around the issue and it just so happens that we can control that in the ConfigMgr client installation.
Running ccmsetup.exe /BITSPriority:FOREGROUND did work around the BITS error during client installation. The client successfully installed and registered with the Primary site.
We could also manually copy all of the installer binary files locally and use the /SOURCE parameter as another alternative.
Success!… well, not so fast.
From an ongoing operations perspective not much was gained. Although Client Settings allow controlling BITS throttling, it cannot control BITS priority. About a year ago the question about controlling BITS priority from a ConfigMgr content distribution perspective was asked on the TechNet forums and the product team did confirm that it isn’t a current feature.
It looks like the firewall or proxy server will have to be kicked in the shins after all.
I stumbled on to an interesting post by the 2PintSoftware guys whom have been doing A LOT of great work with BITS and BranchCache recently.
If I set the BITS Throttling Rate in SCCM, does it apply to all downloads?
Oh no. That would be too simple. Remember that the client setting in SCCM is for Background transfers only. So if you make a deployment ‘Available’ as opposed to ‘Required’, then it will be a BITS Foreground transfer that is created and it will attempt to use whatever bandwidth it can get it’s grubby little hands on.
So it appears that ConfigMgr does know about BITS priorities beyond the ccmsetup.exe scope, but you still can’t change it.