问题描述
我在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(深度子级)的深度,而我们的组件则不使用。