Я получаю ошибку 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 (непосредственные дочерние объекты), а наш компонент - нет.

Другие вопросы по тегам