我在 Windows 10 下有一个 IIS 和 WebDAV。现在我尝试了 /n Software 中的 Delphi 10.4 Webdav 组件,它可以很好地在 SSL 模式 (https) 下通过 WebDAV 检索特定文件。但是当我想尝试获取目录列表时,我得到一个 HTTP 错误 403。在服务器上的日志文件中,我看到 PROPFIND 条目有 403 错误注释。原因类似:IIS-403 err
这里有人知道我可以在哪里解决这个问题。非常感谢。
我在 Windows 10 下有一个 IIS 和 WebDAV。现在我尝试了 /n Software 中的 Delphi 10.4 Webdav 组件,它可以很好地在 SSL 模式 (https) 下通过 WebDAV 检索特定文件。但是当我想尝试获取目录列表时,我得到一个 HTTP 错误 403。在服务器上的日志文件中,我看到 PROPFIND 条目有 403 错误注释。原因类似:IIS-403 err
这里有人知道我可以在哪里解决这个问题。非常感谢。
原因是:(由 /n 软件的 Hugh Wright 回答)
此错误有几个潜在原因。以前遇到类似错误的用户通过更改 WebDAV 组件的 depth 属性来修复它。默认情况下,WebDAV 组件在调用某些方法时使用无限深度,包括 FindProperties 和 ListDirectory。一些服务器不支持无限深度的请求,并且在发出请求时可能会返回 403 错误。
Webdav1.User := 'username';
Webdav1.Password := 'password';
Webdav1.AuthScheme := authBasic;
Webdav1.Depth := dpImmediateChildren; // The server will operate on the
// collection resource URI and all of
// its immediate member resources (but
// on none of their member resources).
Webdav1.FindProperties('ResourceURI');
我能够确认问题是深度属性。默认情况下,CarotDAV 使用深度 1(直接子级),而我们的组件没有。