我正在使用ASP从头开始构建支持WebDAV协议的文件服务。净之前。第一步是响应WebDAV客户端的OPTIONS请求(本例中我使用的是MS Office 2010)。当收到请求时,我的服务将返回这些信息(由Fiddle 2捕获)。该服务在IIS服务器下运行。
该服务允许MS Office在以下url打开文件:https://fileservice.domain.com/api/OfficeClient?dir=C:TestWebApi.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/运行demo,看看小提琴。但是我发现我的例子和在线演示没有任何不同。
我设法解决了这个问题。它是URL问题和许多其他的东西。我不能在这里写下细节,因为它是一个复杂的实现。我只是想确保没有人会浪费时间试图回答这个问题。