
Escribí un servidor WebDAV personalizado que autentica a los usuarios desde una base de datos y sirve un sistema de archivos virtual basado en registros de una base de datos. Funciona bien con clientes WebDAV de terceros, pero no funciona con el miniredirector integrado de Windows cuando se asigna una unidad a la ubicación http.
Lo más extraño es que en mi PC de desarrollo donde escribí el servidor, puedo conectarme perfectamente, sin embargo, CUALQUIER otra computadora que intente acceder al servidor no logra conectarse con el mini-redirector.
He utilizado Fiddler para analizar el tráfico de la red y todo parece estar bien. Cuando intento asignar la unidad, se envía un encabezado de OPCIONES y mis servidores responden con un 200 OK. Luego, el miniredirector envía un método PROPFIND con una profundidad de 0. Mi servidor responde con un 401 no autorizado. Esto abre un cuadro de diálogo de inicio de sesión para usuario y contraseña. Después de ingresar la contraseña, se envía una nueva solicitud PROPFIND pero esta vez con el encabezado de autorización. Todo parece funcionar bien, mi servidor acepta las credenciales de inicio de sesión y responde con una respuesta 207 de estado múltiple con un "HREF" en el directorio raíz. En este punto, el mini-redirector vuelve a mostrar el mensaje de inicio de sesión y lo hace 3 veces en total antes de no poder conectarse y aparece un error que indica que no se puede encontrar el servidor. Lo que es extraño es que se encontró el servidor, puedo verlo en Fiddler y el servidor responde como se esperaba.
Todos los demás clientes WebDAV de terceros tienen un intercambio similar con mi servidor y se conectan y muestran una lista de directorio sin problemas. Sólo falla el mini-redirector. Y como mencioné anteriormente, funciona perfectamente en mi máquina de desarrollo con mini-redirector (aunque el servidor IIS 7.5 al que me estoy conectando no está en mi máquina de desarrollo). Todas las demás computadoras no logran conectarse. Me aseguré de utilizar el truco del registro para permitir la autenticación básica en un sitio HTTP no seguro. Incluso moví mi servidor a un sitio HTTPS seguro con un certificado SSL en caso de que ese fuera el problema y todavía no funciona. ¿Alguien tiene alguna idea? Estoy pensando que tiene que tener algo que ver con mi configuración de IIS 7.5 en el servidor, o una configuración en todas las demás máquinas cliente excepto mi máquina de desarrollo, porque mi código parece estar bien, el servidor parece responder bien a mini -Solicitudes de redirectores, simplemente no asigna la unidad después de la respuesta 207 de estado múltiple como lo hace con todos los demás clientes.
Cualquier ayuda sería muy apreciada. Lo que es frustrante es que anticipé que el mini-redirector sería el más difícil de hacer funcionar, así que lo hice funcionar primero en mi máquina de desarrollo antes de probarlo con todos los demás clientes, así que pensé que estaba en buena forma hasta que intenté conectarme en otros. computadoras y vi que estaba fallando, pero solo con el mini-redirector. Lamentablemente, el miniredirector es el más fácil de usar para mis clientes potenciales, por lo que es imperativo que funcione con el miniredirector. Puedo proporcionar la respuesta/solicitudes de Fiddler si eso ayudaría a alguien a depurar esto conmigo.
Respuesta1
Microsoft WebDav Redirector tiene un error conocido que no le permite utilizar un espacio de nombres XML predeterminado. Después de agregar un prefijo de espacio de nombres y etiquetar todos mis elementos xml con él, mi problema desapareció.
http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html