Recibo un error 403 con mi programa Delphi WebDAV ni el cliente CarotDAV funciona bien

Aug 15 2020

Tengo un IIS y WebDAV en Windows 10. Ahora probé el componente Delphi 10.4 Webdav de / n Software que funciona bien para recuperar un archivo en particular a través de WebDAV en modo SSL (https). Pero cuando quiero intentar obtener la lista del directorio, obtengo un ERROR HTTP 403. En el archivo de registro del servidor, veo que la entrada PROPFIND tiene la nota de error 403. Es similar esa razón: IIS-403 err

¿Alguien aquí tiene una idea de dónde podría resolver este problema? Muchas gracias.

Respuestas

WalterSchrabmair Aug 19 2020 at 11:33

La razón es: (Respondido por Hugh Wright de / n software)

Hay varias causas posibles de este error. Los usuarios anteriores que habían tenido errores similares lo solucionaron cambiando la propiedad de profundidad del componente WebDAV. De forma predeterminada, el componente WebDAV utiliza una profundidad de infinito al llamar a ciertos métodos, incluidos FindProperties y ListDirectory. Algunos servidores no admiten solicitudes con una profundidad de infinito y pueden devolver un error 403 cuando se realiza la solicitud.

 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'); 

Pude confirmar que el problema era la propiedad de profundidad. De forma predeterminada, CarotDAV usa una profundidad de 1 (Hijos inmediatos), y nuestro componente no.