IIS7 – post #59 – IIS 7.0 WebDAV module impressions

Tags: IIS, WebDAV

I don’t usually do too many reviews in my blog.  But, there is a cool module that Microsoft released that supports WebDAV in IIS 7.0.   I’ve never implemented WebDAV, I was curious how this differed from FrontPage (yeah ok!), FTP etc.  Microsoft has a great publishing story, or options at this point to securely publish content.  I was impressed how easily it was to get up and going.  There was a bit of a learning curve, but not too bad.

Here are a few highlights I’ve ran across in my testing.

1) When you try to use net use * http://IPAddress  inside Windows XP or 2003, you get an System 67 error.  If you use the “Add Network Place” feature inside ‘My Network Places’.  You can use WebDAV to copy content. You need to make sure you install the Desktop Experience feature on the Server.  Using net use * http://IPAddressOrDomainName works from an Vista box.

2) There is a great how-to article provided by MS.  Here is the link.
http://go.microsoft.com/fwlink/?LinkId=105146

3) Here is the posting on forums.iis.net that another user was working along side and passed on some good info.
http://forums.iis.net/t/1147386.aspx

4) There is a WebDAV schema file located in %windir%system32inetsrvconfigschemawebdav_schema.xml

5) Inside the applicationHost.config, there is a section inside ‘requestFiltering’ that appears to block copying certain files and folders using WebDAV. I’ve not tried to comment these out and see if that was the issue, but this is what I found.

<requestFiltering>
                <fileExtensions allowUnlisted=”true” applyToWebDAV=”true”>
                    <add fileExtension=”.asa” allowed=”false” />
                    <add fileExtension=”.asax” allowed=”false” />
                    <add fileExtension=”.ascx” allowed=”false” />
                    <add fileExtension=”.master” allowed=”false” />
                    <add fileExtension=”.skin” allowed=”false” />
                    <add fileExtension=”.browser” allowed=”false” />
                    <add fileExtension=”.sitemap” allowed=”false” />
                    <add fileExtension=”.config” allowed=”false” />
                    <add fileExtension=”.cs” allowed=”false” />
                    <add fileExtension=”.csproj” allowed=”false” />
                    <add fileExtension=”.vb” allowed=”false” />
                    <add fileExtension=”.vbproj” allowed=”false” />
                    <add fileExtension=”.webinfo” allowed=”false” />
                    <add fileExtension=”.licx” allowed=”false” />
                    <add fileExtension=”.resx” allowed=”false” />
                    <add fileExtension=”.resources” allowed=”false” />
                    <add fileExtension=”.mdb” allowed=”false” />
                    <add fileExtension=”.vjsproj” allowed=”false” />
                    <add fileExtension=”.java” allowed=”false” />
                    <add fileExtension=”.jsl” allowed=”false” />
                    <add fileExtension=”.ldb” allowed=”false” />
                    <add fileExtension=”.dsdgm” allowed=”false” />
                    <add fileExtension=”.ssdgm” allowed=”false” />
                    <add fileExtension=”.lsad” allowed=”false” />
                    <add fileExtension=”.ssmap” allowed=”false” />
                    <add fileExtension=”.cd” allowed=”false” />
                    <add fileExtension=”.dsprototype” allowed=”false” />
                    <add fileExtension=”.lsaprototype” allowed=”false” />
                    <add fileExtension=”.sdm” allowed=”false” />
                    <add fileExtension=”.sdmDocument” allowed=”false” />
                    <add fileExtension=”.mdf” allowed=”false” />
                    <add fileExtension=”.ldf” allowed=”false” />
                    <add fileExtension=”.ad” allowed=”false” />
                    <add fileExtension=”.dd” allowed=”false” />
                    <add fileExtension=”.ldd” allowed=”false” />
                    <add fileExtension=”.sd” allowed=”false” />
                    <add fileExtension=”.adprototype” allowed=”false” />
                    <add fileExtension=”.lddprototype” allowed=”false” />
                    <add fileExtension=”.exclude” allowed=”false” />
                    <add fileExtension=”.refresh” allowed=”false” />
                    <add fileExtension=”.compiled” allowed=”false” />
                    <add fileExtension=”.msgx” allowed=”false” />
                    <add fileExtension=”.vsdisco” allowed=”false” />
                </fileExtensions>
                <verbs allowUnlisted=”true” applyToWebDAV=”true” />
                <hiddenSegments applyToWebDAV=”true”>
                    <add segment=”web.config” />
                    <add segment=”bin” />
                    <add segment=”App_code” />
                    <add segment=”App_GlobalResources” />
                    <add segment=”App_LocalResources” />
                    <add segment=”App_WebReferences” />
                    <add segment=”App_Data” />
                    <add segment=”App_Browsers” />
                </hiddenSegments>
            </requestFiltering>

In conclusion, the WebDAV module is worth checking out, here is an article by Robert McMurray. 
http://blogs.iis.net/robert_mcmurray/archive/2007/12/22/webdav-module-for-windows-server-2008-golive-beta-is-released.aspx

Cheers,

Steve Schofield
Microsoft MVP – IIS