0

我正在使用 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/运行演示并查看 Fiddle。但我在我的示例和在线演示中找不到任何差异。

4

1 回答 1

0

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

于 2013-05-31T15:34:36.877 回答