When I attempt to access some files on a WEBDAV share in the odrive WebUI, it returns: "WEBDAV_ITEM_NOT_FOUND".
When I try syncing the .cloudf file from Desktop Sync, it returns: Can’t sync Filename.vbs.old.cloud. The item does not exist on the WebDAV server.
It seems to be related to the file extension.
Working Extensions: vbs, txt, exe, zip, msi, html, dll
Failing Extensions: old, bat, log, reg, ps1, sql, ini, cfg, url
But if I connect to WebDAV using Windows Explorer, I can open all files without issue. I have checked the server configuration for the “Allow Unlisted File Extensions” (is checked), but it seems very strange that Windows can access the files but odrive cannot. Help!
My desktop agent version is prod 6236.
I am running Windows 10 64-bit, build 15063.
IIS is providing the WebDAV, yes. But I can map a drive to this WebDAV and access these files without any problems through Windows Explorer. Doesn’t that suggest that there is something that odrive is doing differently than Windows, which causes odrive specifically to fail?
I suspect that the difference is that Windows is using some WebDAV command to retrieve the file, and I assume that for a download (vs. an upload or a rename) odrive is not using a WebDAV command. I guess it is just attempting to “download” the file, and thus running into the unknown MIME types issue?
In my testing IIS was returning a 404 for a GET on a resource that had an extension that was not explicitly defined in the MIME Type. WebDAV is really just HTTP with some additional verbs. Download is a standard GET.
WebDAV tends to be a bit “loose” in its standards and I have seen lots of variations between server implementations. It is possible that Explorer is doing something special, that is non-standard to get around the IIS restriction. I know Microsoft has a set of its own, Windows-specific WebDAV extensions that are additive to the general WebDAV standard, and we don’t implement those extensions. You could try looking at the IIS logs to see what the difference is in the Explorer request vs the odrive request.
Does adding the wildcard MIME mapping to IIS, as per the previous post, fix the problem?
I am not authorized to make changes to the configuration, though I can find out the settings. I confirmed (as expected) that there is not a wildcard mapping in place. And I confirmed that a MIME type entry exists for each of the file types that I successfully downloaded with odrive.
You can see that both clients are performing a GET on the resource. In the odrive case, IIS returns a 404 (Not Found) when the request is made.
Unfortunately I don’t know why IIS behaves differently here. The Windows client could be adding some additional request headers that we aren’t seeing to prompt IIS to serve the content despite the MIME type rule. Or, it could be that IIS makes exceptions for the Explorer client type. This restriction is definitely happening server-side, though.
Is the odrive User-Agent customizable? Would it make sense to change it to “Microsoft-WebDAV-MiniRedir/” when accessing WebDAV resources if it allowed access to contents that are normally blocked from being downloaded?
There isn’t a way to do this, currently. We also don’t know if it is the user agent that dictates this. It would be pretty wacky if that was the case, although not totally surprising considering the stuff I’ve seen MS do…