Otrzymuję błąd 403 z moim programem Delphi WebDAV ani klient CarotDAV działa poprawnie

Aug 15 2020

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

WalterSchrabmair Aug 19 2020 at 11:33

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.