
나는 데이터베이스에서 사용자를 인증하고 데이터베이스의 레코드를 기반으로 가상 파일 시스템을 제공하는 사용자 정의 WebDAV 서버를 작성했습니다. 타사 WebDAV 클라이언트에서는 잘 작동하지만 드라이브를 http 위치에 매핑할 때 Windows 내장 미니 리디렉터에서는 작동하지 않습니다.
가장 이상한 점은 서버를 작성한 개발 PC에서는 제대로 연결할 수 있지만 서버에 액세스하려는 다른 컴퓨터에서는 미니 리디렉터와 연결하지 못한다는 것입니다.
Fiddler를 사용하여 네트워크 트래픽을 분석했는데 모든 것이 괜찮아 보입니다. 드라이브를 매핑하려고 하면 OPTIONS 헤더가 전송되고 서버는 200 OK로 응답합니다. 그런 다음 미니 리디렉터는 깊이가 0인 PROPFIND 메서드를 보냅니다. 내 서버는 승인되지 않은 401로 응답합니다. 그러면 사용자 및 비밀번호에 대한 로그인 대화 상자가 나타납니다. 비밀번호를 입력한 후 새로운 PROPFIND 요청이 전송되지만 이번에는 인증 헤더와 함께 전송됩니다. 모든 것이 잘 작동하는 것 같습니다. 내 서버는 로그인 자격 증명을 수락하고 루트 디렉터리에 "HREF"가 포함된 207 다중 상태 응답으로 응답합니다. 이 시점에서 미니 리디렉터는 로그인 프롬프트를 다시 표시하고 서버를 찾을 수 없다는 오류와 함께 연결에 실패하기 전까지 총 3번 로그인 프롬프트를 표시합니다. 이상한 점은 서버가 발견되었고 Fiddler에서 볼 수 있으며 서버가 예상대로 응답한다는 것입니다.
다른 모든 타사 WebDAV 클라이언트는 내 서버와 유사한 교환을 갖고 연결하여 디렉터리 목록을 제대로 표시합니다. 미니 리디렉터만 실패합니다. 그리고 위에서 언급했듯이 미니 리디렉터가 있는 개발 컴퓨터에서 완벽하게 작동합니다(연결하려는 IIS 7.5 서버가 개발 컴퓨터에 없지만). 다른 모든 컴퓨터는 연결에 실패합니다. 비보안 HTTP 사이트를 통한 기본 인증을 허용하기 위해 레지스트리 해킹을 사용했습니다. 문제가 있는 경우를 대비해 SSL 인증서가 있는 보안 HTTPS 사이트로 서버를 옮겼는데 여전히 작동하지 않습니다. 누구든지 어떤 아이디어가 있습니까? 서버의 IIS 7.5 설정이나 개발 컴퓨터를 제외한 다른 모든 클라이언트 컴퓨터의 설정과 관련이 있다고 생각합니다. 내 코드가 괜찮아 보이고 서버가 미니에 잘 응답하는 것처럼 보이기 때문입니다. -리디렉터 요청의 경우 다른 모든 클라이언트와 마찬가지로 207 다중 상태 응답 후에 드라이브를 매핑하지 않습니다.
어떤 도움이라도 대단히 감사하겠습니다. 실망스러운 점은 미니 리디렉터가 작동하기 가장 어려울 것으로 예상했기 때문에 다른 모든 클라이언트에서 테스트하기 전에 개발 컴퓨터에서 먼저 작동하도록 만들었기 때문에 다른 클라이언트에 연결을 시도하기 전까지는 상태가 양호하다고 생각했습니다. 컴퓨터에서 실패하는 것을 확인했지만 미니 리디렉터에서만 가능했습니다. 안타깝게도 미니 리디렉터는 잠재 고객이 사용하기 가장 쉽기 때문에 미니 리디렉터와 함께 작동하는 것이 필수적입니다. 누구든지 나와 함께 디버깅하는 데 도움이 된다면 Fiddler에서 응답/요청을 제공할 수 있습니다.
답변1
Microsoft WebDav Redirector에는 기본 XML 네임스페이스를 사용하지 못하는 알려진 버그가 있습니다. 네임스페이스 접두사를 추가하고 모든 XML 요소에 태그를 지정하면 문제가 사라졌습니다.
http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html