构建WebDAV服务器

时间:2013-05-29 06:45:44

标签: webdav

我正在使用ASP.NET WebAPI从头开始构建文件服务支持WebDAV协议。第一步是响应来自WebDAV客户端的OPTIONS请求(在本例中我使用了MS Office 2010)。得到该请求后,我的服务将返回这些信息(由Fiddle 2捕获)。该服务在IIS服务器下运行。

该服务允许MS Office在此URL上打开文件:https://fileservice.domain.com/api/OfficeClient?dir=C:\ Test \ WebApi.docx

HTTP/1.1 200 OK
Allow: COPY,DELETE,GET,HEAD,LOCK,MOVE,OPTIONS,POST,PROPFIND,PROPPATCH,PUT,REPORT,UNLOCK
Content-Length: 0
Accept-Ranges: bytes
Server: Microsoft-IIS/7.5
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH, PUT, REPORT, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, Translate, Range, Timeout, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control
Access-Control-Max-Age: 2147483647
DAV: 1
Public: COPY, DELETE, GET, HEAD, LOCK, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH, PUT, REPORT, UNLOCK
MS-Author-Via: DAV
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 29 May 2013 04:36:19 GMT

问题是,MS Office不断发送5个相同的OPTIONS请求。它应该发送的下一个请求应该是HEAD,然后是一系列打开文档的其他方法。 我看一下:http://sourceforge.net/projects/webdav/?source=navbar实现。并尝试从http://www.webdavsystem.com/server/运行演示并查看小提琴。但我在我的例子和在线演示中找不到任何差异。

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。这是URL问题和很多其他的东西。我不能在这里写下详细信息,因为它是一个复杂的实现。只是想确保没有人会浪费时间来回答这个问题。