Otrzymuję błąd 403 z moim programem Delphi WebDAV ani klient CarotDAV działa poprawnie
Mam IIS i WebDAV pod Windows 10. Teraz wypróbowałem komponent Delphi 10.4 Webdav z / n Oprogramowanie, które działa dobrze przy pobieraniu określonego pliku przez WebDAV w trybie SSL (https). Ale kiedy chcę spróbować uzyskać listę katalogów, otrzymuję błąd HTTP 403. W pliku dziennika na serwerze widzę, że wpis PROPFIND zawiera informację o błędzie 403. Powód jest podobny: błąd IIS-403
Czy ktoś tutaj ma pomysł, gdzie mógłbym rozwiązać ten problem. Wielkie dzięki.
Odpowiedzi
Powód jest następujący: (Odpowiedział Hugh Wright z oprogramowania / n)
Istnieje kilka potencjalnych przyczyn tego błędu. Poprzedni użytkownicy, którzy mieli podobne błędy, naprawili to, zmieniając właściwość głębokości komponentu WebDAV. Domyślnie składnik WebDAV używa głębi nieskończoności podczas wywoływania niektórych metod, w tym FindProperties i ListDirectory. Niektóre serwery nie obsługują żądań o głębi nieskończoności i mogą zwracać błąd 403 po wysłaniu żądania.
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');
Udało mi się potwierdzić, że problemem była właściwość Depth. Domyślnie CarotDAV używa głębokości 1 (Immediate Children), a nasz komponent nie.