Slow OSD download fixed (HTTP/WEBDAV issue)
This week I’ve been beating on a problem with an OSD Task Sequence. It is a TS for deploying the Vista image that I build with my Build and Capture TS. What I was noticing was that in my Deploy TS, it was simply taking entirely too long to download the WIM file. Now granted it is a 3.5gig file, but it was taking approximately 15 minutes to download. With the gigabit connection, it should have been about a minute and a half. WHY???
I enabled command support on my boot image, ran the TS, and pulled up an F8 CMD prompt to take a look at the smsts.log. It has some errors where the HTTP transport was failing with a 405 code. After failing three times, it then switched to SMB and proceeded to download…very slowly. Here is what I saw in the log:
Initializing HTTP transport.
Setting URL = http://SCCMfqdn/SMS_DP_SMSDPE$/SMSPKG/SMS00024/.
Address = SCCMfqdn, Object = /SMS_DP_SMSDPE$/SMSPKG/SMS00024/, Port = 12345.
WinHttp credentials set
CLibSMSMessageWinHttpTransport::Send: URL:
SCCMfqdn:12345 PROPFIND /SMS_DP_SMSDPE$/SMSPKG/SMS00024/
Error. Status code 405 returned
dwHttpResultCode>=200 && dwHttpResultCode<=299, HRESULT=80004005 (e:\nts_sms_fre\sms\framework\tscore\downloadcontent.cpp,590)
Http result: 405
SendResourceRequest() failed with 0x80004005
SendResourceRequest(), HRESULT=80004005 (e:\nts_sms_fre\sms\framework\tscore\downloadcontent.cpp,371)
oDavRequest.GetDirectoryListing(setDirs, setFiles), HRESULT=80004005 (e:\nts_sms_fre\sms\framework\tscore\resolvesource.cpp,2419)
Retrying download…
Tried all the available http based locations. SMB based locations will be attempted now.
So…what is that 405 code all about? It’s an HTTP code for “Method not allowed”. I ended up finding a page that explained that this meant that the HTTP verb (GET, POST, etc) wasn’t allowed. So…what verb was it looking for? PROPFIND. That led me to a search on the TechNet ConfigMgr forum for “propfind” which pulled up this thread. It wasn’t my exact scenario, but it fit close enough to try. The gist is that there is a line that needs to be in the applicationhost.config file to tell WEBDAV to handle the PROPFIND (and other) verbs. The line is (all on one line…be careful of smart vs. straight quotes):
<add name=”WebDAV” path=”*” verb=”PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK” modules=”WebDAVModule” resourceType=”Unspecified” requireAccess=”None” />
After putting that line in the file, stopping ConfigMgr, stopping IIS, replacing the file, and starting everything back up…ConfigMgr got very angry with me. The MP was really ticked. It was officially refusing to do anything. So…I replaced my modified file with the original that I had copied elsewhere. Everything was happy again…but still slow.
A bit later my friend Tim called. I ran it by him, and he gave me the extra couple of bits of information that the TechNet thread was missing. The line that needs to be added to the applicationhost.config file is the right line…but instead of being added in five places as mentioned in the TechNet thread, it needs to be added in nine places…all nine of the “<handlers></handlers>” sections. Also…it needs to be added before the “StaticFile” handler line in each of those sections…so each of the “handlers” sections should end looking like this (three lines…depending on how much this wraps in your browser):
<add name=”WebDAV” path=”*” verb=”PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK” modules=”WebDAVModule” resourceType=”Unspecified” requireAccess=”None” />
<add name=”StaticFile” path=”*” verb=”*” modules=”StaticFileModule,DefaultDocumentModule,DirectoryListingModule” resourceType=”Either” requireAccess=”Read” />
</handlers>
After putting that in place, the HTTP transport worked, and the download took the minute and a half that I expected it to take. The smsts.log looks like this instead:
Initializing HTTP transport.
Setting URL = http://SCCMfqdn/SMS_DP_DP$/SMSPKG/SMS00024/.
Address = SCCMfqdn, Object = /SMS_DP_DP$/SMSPKG/SMS00024/, Port = 12345.
WinHttp credentials set
CLibSMSMessageWinHttpTransport::Send: URL: SCCMfqdn:12345 PROPFIND /SMS_DP_DP$/SMSPKG/SMS00024/
Error. Status code 207 returned
List of files to be downloaded
Directory: http://SCCMfqdn:12345/SMS_DP_DP$/SMSPKG/SMS00024/
File: http://SCCMfqdn:12345/SMS_DP_DP$/SMSPKG/SMS00024/xyzabc.wim
GetDirectoryListing() successfully completed
Succeeded loading resource DLL ‘X:\sms\bin\i386\1033\TSRES.DLL’
Executing command line: X:\WINDOWS\system32\cmd.exe /k
The command completed successfully.
Successfully launched command shell.
Downloaded file from http://SCCMfqdn:12345/SMS_DP_DP$/SMSPKG/SMS00024/xyzabc.wim to C:\_SMSTaskSequence\Packages\SMS00024\xyzabc.wim
Download done setting progress bar to 100
It is much happier and faster…and I’m much happier.
[…] https://verbalprocessor.com/2008/07/16/slow-osd-download-fixed-httpwebdav-issue/ Published Wednesday, July 16, 2008 4:31 PM by rodtrent Filed under: Microsoft Deployment, ConfigMgr 2007 […]
Pingback by Slow OSD download (HTTP/WEBDAV issue) - Rod Trent at myITforum.com | July 16, 2008
Hi Jarvis
Is the applicationhost.config only associated with IIS 7.0? I am getting slow OSD downloads too, but am running IIS 6.0
Cheers
Lyle,
As far as I know, the applicationhost.config file is an IIS7 thing. I’m installed on Server 2008, so that is what I’m looking at. Can’t answer to whether this will speed up IIS6 or not…or even if that file exists in IIS6.
Sorry I couldn’t give a more definitive answer.
Thanks for the reply mate, much appreciated!
:)
Having exactly the same problem here. Server 2008 with SCCM 2007 SP1. Perhaps they have fixed this in R2?
Anyway, my applicationhost.config only has SEVEN But I have tried inserting the code for all 7, and will post back the results once I have rebooted the server.
I have applied the fix, but sadly it didnt work. It stopped IIS from working altotger, so I have rolled back to the backup.
It seems dreadful that everyone using iis7 with sccm is experiencing this slow imaging problem, but there is no official fix.
Hello,
I’m running SCCM 2007 SP2 R2 on Windows 2008 R2 machines.
I’m seeing this slowness on my off-site distribution point when clients that are in that site connect to the distr.point.
Thanks to your post, I started looking for retrying download.
I also found that I’ve got errors, but they are not 405 errors, but 401 errors: The request requires user authentication.
What could this mean? Does my network acces account not have enough permissions on IIS?
I hope you can help me on this!
Thanks in advance!
Filip
Don’t know without seeing the logs. I’d suggest posting your question (along with appropriate log snippets) to the ConfigMgr forum on myitforum.com.