You are probably right that a proxy server is the only way around this. BITS uses the HEAD request to get the length of the content and decides whether it wants to block the download of the file. Then a GET request is executed to actually retrieve the file â sometimes in general if the file is small enough, otherwise with range headers.
If you can use a proxy server or some other trick to give it some kind of response to a HEAD request, it should peel off. Even if the HEAD request is faked with dummy content length, BITS will go to GET. You can see duplicate GET requests in this case, because if the first GET request returns the length of the content longer than the original HEAD request, BITS can decide "oh shit, I will do it best."
Given this, I'm a little surprised that he is not smart enough to recover from a 403 error in a HEAD request and still move on to GET. What is the actual work behavior? Have you tried watching it using bitadmin / monitor? If the task is in a state of transient error, it can do this for about 20 minutes, and then eventually recover.
user377136
source share