ConfigMgr 2007: Client push may fail when the Management Point is installed on Windows Server 2008

Earlier today I posted about an issue we’re seeing with some degree of frequency in our OpsMgr support group so I figure why leave the ConfigMgr crowd out?  This one seems to be fairly popular so maybe if you happen to run into it you’ll now know the resolution.  A special thanks to Dennis Donahoe for bringing this to my attention and writing up the original solution below:

========

Issue: When the System Center Configuration Manager 2007 Management Point (MP) is installed on a Windows Server 2008 based computer, client push installations may fail with an error similar to the following:

Failed to correctly receive a WEBDAV HTTP request.
Failed to successfully complete HTTP request. (StatusCode at WinHttpQueryHeaders: 405)
Sending Fallback Status Point message, STATEID=’301′.
State message with TopicType 800 and TopicId {44ECCF16-A66D-4FD0-B127-808F39B21380} has been sent to the FSP

Cause: Certain information may be missing from the applicationHost.config file.

Resolution: Add the following to each of the %windir%System32inetsrvconfigapplicationHost.config file’s <handlers xxxx> section:

<add name=”WebDAV” path=”*” verb=”PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK” modules=”WebDAVModule” resourceType=”Unspecified” requireAccess=”None” />

Add the line above in each <handlers xxxx> section between OPTIONSverbhandler and the “StaticFile”

NOTE: There is a separate handlers  section for each virtual directory

You may also need to verify that the following exists in the same file:

1. In the <globalModules></globalModules> section:

<add name=”WebDAVModule” image=”C:Windowssystem32inetsrvwebdav.dll” />

2. In the <modules></modules> section:

<add name=”WebDAVModule” />

Below is an example of the corrected section for the SMSMP virtual Directory section:

<location path=”Default Web Site/SMSSMP”>
        <system.webServer>
            <directoryBrowse enabled=”false” showFlags=”Date, Time, Size, Extension” />
            <handlers accessPolicy=”Execute”>
                <clear />
                <add name=”ISAPI-dll” path=”*.dll” verb=”*” modules=”IsapiModule” resourceType=”File” requireAccess=”Execute” allowPathInfo=”true” />
                <add name=”TraceHandler-Integrated” path=”trace.axd” verb=”GET,HEAD,POST,DEBUG” type=”System.Web.Handlers.TraceHandler” preCondition=”integratedMode” />
                <add name=”WebAdminHandler-Integrated” path=”WebAdmin.axd” verb=”GET,DEBUG” type=”System.Web.Handlers.WebAdminHandler” preCondition=”integratedMode” />
                <add name=”AssemblyResourceLoader-Integrated” path=”WebResource.axd” verb=”GET,DEBUG” type=”System.Web.Handlers.AssemblyResourceLoader” preCondition=”integratedMode” />
                <add name=”PageHandlerFactory-Integrated” path=”*.aspx” verb=”GET,HEAD,POST,DEBUG” type=”System.Web.UI.PageHandlerFactory” preCondition=”integratedMode” />
                <add name=”SimpleHandlerFactory-Integrated” path=”*.ashx” verb=”GET,HEAD,POST,DEBUG” type=”System.Web.UI.SimpleHandlerFactory” preCondition=”integratedMode” />
                <add name=”WebServiceHandlerFactory-Integrated” path=”*.asmx” verb=”GET,HEAD,POST,DEBUG” type=”System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” preCondition=”integratedMode” />
                <add name=”HttpRemotingHandlerFactory-rem-Integrated” path=”*.rem” verb=”GET,HEAD,POST,DEBUG” type=”System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ preCondition=”integratedMode” />
                <add name=”HttpRemotingHandlerFactory-soap-Integrated” path=”*.soap” verb=”GET,HEAD,POST,DEBUG” type=”System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ preCondition=”integratedMode” />
                <add name=”AboMapperCustom-51457″ path=”*.sms_smp” verb=”CCM_POST” modules=”IsapiModule” scriptProcessor=”d:sms_ccmsmpisapi.dll” responseBufferLimit=”0″ />
                <add name=”TRACEVerbHandler” path=”*” verb=”TRACE” modules=”ProtocolSupportModule” requireAccess=”None” />
                <add name=”OPTIONSVerbHandler” path=”*” verb=”OPTIONS” modules=”ProtocolSupportModule” requireAccess=”None” />
        <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>
            <security>

========

Thanks Dennis!

J.C. Hornbeck | Manageability Knowledge Engineer