0

我在 Windows 10 下有一个 IIS 和 WebDAV。现在我尝试了 /n Software 中的 Delphi 10.4 Webdav 组件,它可以很好地在 SSL 模式 (https) 下通过 WebDAV 检索特定文件。但是当我想尝试获取目录列表时,我得到一个 HTTP 错误 403。在服务器上的日志文件中,我看到 PROPFIND 条目有 403 错误注释。原因类似:IIS-403 err

这里有人知道我可以在哪里解决这个问题。非常感谢。

4

1 回答 1

0

原因是:(由 /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(直接子级),而我们的组件没有。

于 2020-08-19T11:33:15.240 回答