1

I wrote a custom WebDAV server that authenticates users from a database and serves a virtual file system based on records from a database. It is working well with 3rd party WebDAV clients but does not work with Windows built-in mini-redirector when mapping a drive to the http location.

The strangest thing, is on my development PC where I wrote the server, I can connect just fine, however ANY other computer that tries to access the server, fails to connect with mini-redirector.

I have used Fiddler to analyze the network traffic and everything appears fine. When I try to map the drive, an OPTIONS header is sent and my servers responds with a 200 OK. Then mini-redirector sends a PROPFIND method with a depth of 0. My server responds back with a 401 unauthorized. This brings up a login dialog for user and password. After entering the password, a new PROPFIND request is sent but this time with the authorization header. Everything seems to work fine, my server accepts the login credentials and responds back with a 207 multistatus response with an "HREF" to the root directory. At this point, mini-redirector brings up the login prompt again and does so 3 times in total before failing to connect with an error saying the server cannot be found. What is weird, is the server IS found, I can see it in Fiddler, and the server is responding as expected.

Every other 3rd Party WebDAV client has a similar exchange with my server and connects and brings up a directory listing just fine. Only mini-redirector fails. And as I mentioned above, it works perfectly on my development machine with mini-redirector(although the IIS 7.5 server I am connecting to is not on my development machine). Every other computer fails to connect. I have made sure to use the registry hack to allow basic authentication over a non-secure HTTP site. I have even moved my server to a secure HTTPS site with an SSL cert just in case that was the issue, and it still doesn't work. Does anyone have any ideas. I am thinking it has to be something to do with my IIS 7.5 setup on the server, or a setting on all of the other client machines except my development machine, because my code appears to be fine, the server appears to respond fine to mini-redirectors requests, it just doesn't map the drive after the 207 multistatus response like it does with all other clients.

Any help would be greatly appreciated. What is frustrating is that I anticipated mini-redirector being the hardest to get working, so I made it work first on my development machine before testing it with all other clients, so I thought I was in good shape until I attempted to connect on other computers and saw that it was failing, but only with mini-redirector. Sadly mini-redirector is the easiest to use for my potential clients, so it is imperative that it works with mini-redirector. I can supply the response/requests from Fiddler if that would help anybody debug this with me.

  • I should note, I have tried using both local root path "/" and a fully qualified url 'http://'subdomain.domain.com/' root path to no avail. – jjspierx Jan 14 '14 at 4:19
  • I think there was some problem with the mini-redirector and non-root-allocated WebDAV paths – TGlatzer Jan 14 '14 at 8:30
  • Thanks for the comment, I have had my server set up on both root, as well as a non-root allocated paths and it happens with both configurations. I have tried with Win7 and Win8 client machines. – jjspierx Jan 14 '14 at 12:50
  • I figured out the issue. The issue is related to using a default xml namespace. Apparently there is a bug with mini-redirector that does not allow you to use a default namespace, you have give namespace prefix and tag the nested xml elements with the prefix. Only mini-redirector has this issue. greenbytes.de/tech/webdav/… – jjspierx Jan 15 '14 at 19:22
1

Microsoft WebDav Redirector has a known bug that does not all you to use a default XML namespace. After adding a namespace prefix, and tagging all of my xml elements with it, my issue went away.

http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.