OSX 10.9 - Mavericks webdav 客户端锁定问题

Posted

技术标签:

【中文标题】OSX 10.9 - Mavericks webdav 客户端锁定问题【英文标题】:OSX 10.9 - Mavericks webdav client lock issue 【发布时间】:2013-10-31 23:49:18 【问题描述】:

我有一个适用于 windows 和 OSX 10.8 版本的 webdav 服务器实现。自 OS X 10.9 升级以来,许多 webdav 操作(包括使用 Finder 将文件拖到 webdav 挂载上以及使用 MS Office 应用程序(Microsoft Word、Office、Powerpoint)编辑文件)都已停止工作。

查看客户端 webdav 服务器流量,似乎在获取文件上的 LOCK 后,客户端在随后对服务器的请求中没有提供锁定令牌,导致后续操作出现 423 响应。根据 webdav 规范,客户端需要在后续命令中向服务器提供文件 lock-token。

我确认这不是 10.8 或更早版本的问题。

文件拖放到 Finder webdav mount 显示以下请求和响应序列:

PROPFIND /webdav/Private/a123/test.pptx 404
PROPFIND /webdav/Private/a123/test.pptx
PUT /egnyte-internal/webdav/Private/a123/test.pptx 201
PROPFIND /webdav/Private/a123/._test.pptx 404
LOCK /webdav/Private/a123/test.pptx 200
UNLOCK /webdav/Private/a123/test.pptx 204
PROPFIND /webdav/Private/a123/._test.pptx 404
LOCK /webdav/Private/a123/test.pptx 200
UNLOCK /webdav/Private/a123/test.pptx 423

查看此序列的 wireshark 输出,第二个解锁请求不包含 Lock-Token 标头。此时system.log显示错误“unexpected statusCode 423”并挂载断开。

这里是 UNLOCK 请求标头,缺少 Lock-Token:

UNLOCK /webdav/Private/a123/test.pptx HTTP/1.1
Host: localhost:10001
Accept: */*
Authorization: Basic YWRtaTeyhsbaksVusjhs9tZTEyMw==
Content-Length: 0
Connection: keep-alive
User-Agent: WebDAVFS/3.0.0 (03008000) Darwin/13.0.0 (x86_64)
\r\n

有其他人看到这个问题并有解决方案吗?

谢谢

【问题讨论】:

我认为这与此问题相同:discussions.apple.com/message/23525832 我也遇到了同样的问题,但也没有解决方案。 【参考方案1】:

我必须说我自己没有遇到过这个问题,但我一直在寻找我们在使用 WebDAV 服务器时遇到的问题。在路上我发现了这个: 您对问题的描述听起来与我在这些帖子中所读到的非常相似。如果对您有帮助,请查看并报告。似乎很多 WebDAV 服务器都坏了。

http://www.engadget.com/discuss/

还有这个:

https://discussions.apple.com/thread/5476839

至少这是一个很好的起点。

【讨论】:

以上是关于OSX 10.9 - Mavericks webdav 客户端锁定问题的主要内容,如果未能解决你的问题,请参考以下文章

OSX 10.9 - Mavericks webdav 客户端锁定问题

OS X 10.9 Mavericks - 使用虚拟主机设置本地主机

在 migratePersistentStore: 到 OS X 10.9 Mavericks 上的另一个 URL 后访问 NSManagedObject 属性时崩溃

Aspell 不会在 OS X 10.9 (Mavericks) 上构建

在 OS X 10.9 (Mavericks) 上安装 Java

如何在 OS X 10.9 (Mavericks) 上使用 GDB 而不是 LLDB 调试 ELF 文件?