Я получаю ошибку 403 с моей программой Delphi WebDAV, а клиент CarotDAV не работает нормально
У меня есть IIS и WebDAV под Windows 10. Теперь я попробовал компонент Delphi 10.4 Webdav из /n Software, который отлично работает для получения определенного файла через WebDAV в режиме SSL (https). Но когда я хочу попытаться получить список каталогов, я получаю сообщение HTTP ERROR 403. В файле журнала на сервере я вижу, что запись PROPFIND содержит примечание об ошибке 403. Похожая причина: IIS-403 err
У кого-нибудь есть идея, где я мог бы решить эту проблему. Большое спасибо.
1 ответ
Причина такова: (Отвечает Хью Райт из /n software)
Есть несколько потенциальных причин этой ошибки. Предыдущие пользователи, у которых были похожие ошибки, исправили это, изменив свойство глубины компонента WebDAV. По умолчанию компонент 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 (непосредственные дочерние объекты), а наш компонент - нет.