The Realm of the Verbal Processor

Jarvis's Ramblings

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.

Advertisements

July 16, 2008 - Posted by | ConfigMgr

8 Comments »

  1. […] 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

  2. 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

    Comment by Lyle | August 5, 2008

  3. 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.

    Comment by Jarvis | August 5, 2008

  4. Thanks for the reply mate, much appreciated!

    :)

    Comment by Lyle | August 5, 2008

  5. 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.

    Comment by David Hamer | September 23, 2008

  6. 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.

    Comment by David Hamer | September 23, 2008

  7. 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

    Comment by Filip | August 26, 2010

  8. 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.

    Comment by Jarvis | August 26, 2010


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s