I have recently updated a .net application from 3.1 to 6. Applications like microsoft office and microsoft explorer that support WebDav are now using http2 to process web requests. In doing so, windows explorer is no longer able to properly interpret my propfind response when the status is anything other than HTTP/1.1
Simply hardcoding the response from HTTP/2 to HTTP/1.1 allows windows explorer to function again. I cant seem to find any documentation that would suggest protocol changes are needed for Http2.
Here is an example propfind response. Is anyone aware of this bug or am I missing additional properties that are now required, or is this simply a Microsoft Explorer issue?
<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
<D:response>
<D:href>https://localhost:5001/documents</D:href>
<D:propstat>
<D:prop>
<creationdate>2022-01-09T01:06:56Z</creationdate>
<displayname>Documents</displayname>
<getcontentlength>0</getcontentlength>
<getcontenttype>application/octet-stream</getcontenttype>
<getlastmodified>2023-04-11T14:08:41Z</getlastmodified>
<iscollection>1</iscollection>
<isFolder>t</isFolder>
<ishidden>0</ishidden>
<D:resourcetype>
<D:collection />
</D:resourcetype>
<supportedlock>
<lockentry>
<lockscope>
<D:exclusive />
</lockscope>
<locktype>
<D:write />
</locktype>
</lockentry>
</supportedlock>
</D:prop>
<D:status>HTTP/2 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>
It appears the issue was due to the <D:status> compliance related to major and minor versions of a HTTP protocol. Windows explorer mini-redirector seems to be very strict about this versioning compliance. According to RFC 2068 section 3.1
Although the http context request protocol does not include a minor version, WebDAV compliance requires a minor version be added in the <D:status> of the response. For example:
should be