Я написал собственный сервер WebDAV, который аутентифицирует пользователей из базы данных и обслуживает виртуальную файловую систему на основе записей из базы данных. Он хорошо работает со сторонними клиентами WebDAV, но не работает со встроенным мини-перенаправителем Windows при сопоставлении диска с расположением http.
Самое странное, что на моем компьютере разработки, на котором я написал сервер, я могу нормально подключиться, однако ЛЮБОЙ другой компьютер, который пытается получить доступ к серверу, не может подключиться с помощью мини-перенаправителя.
Я использовал Fiddler для анализа сетевого трафика, и все выглядит нормально. Когда я пытаюсь подключить диск, отправляется заголовок OPTIONS, и мои серверы отвечают 200 OK. Затем мини-перенаправитель отправляет метод PROPFIND с глубиной 0. Мой сервер отвечает 401 неавторизованным. Это вызывает диалог входа в систему для пользователя и пароля. После ввода пароля отправляется новый запрос PROPFIND, но на этот раз с заголовком авторизации. Кажется, все работает нормально, мой сервер принимает учетные данные для входа и отвечает 207 мультистатусным ответом с «HREF» в корневой каталог. На этом этапе мини-перенаправитель снова вызывает приглашение входа в систему и делает это в общей сложности 3 раза, прежде чем не сможет подключиться с ошибкой, говорящей, что сервер не может быть найден. Что странно, сервер IS найден, я вижу его в Fiddler, и сервер отвечает, как ожидалось.
Любой другой сторонний клиент WebDAV имеет аналогичный обмен с моим сервером, легко подключается и отображает список каталогов. Не работает только мини-редиректор. И, как я упоминал выше, он отлично работает на моей машине разработки с мини-перенаправителем (хотя сервер IIS 7.5, к которому я подключаюсь, не находится на моей машине разработки). Ни один другой компьютер не может подключиться. Я обязательно использовал взлом реестра, чтобы разрешить базовую аутентификацию через незащищенный HTTP-сайт. Я даже переместил свой сервер на защищенный сайт HTTPS с сертификатом SSL на всякий случай, если это было проблемой, но он по-прежнему не работает. У кого-нибудь есть идеи. Я думаю, это должно быть как-то связано с моей настройкой IIS 7.5 на сервере или настройкой на всех других клиентских машинах, кроме моей машины разработки, потому что мой код, похоже, в порядке, сервер, похоже, отлично реагирует на mini -redirectors, он просто не отображает диск после мультистатусного ответа 207, как это происходит со всеми другими клиентами.
Любая помощь будет принята с благодарностью. Что расстраивает, так это то, что я ожидал, что труднее всего будет работать с мини-перенаправителем, поэтому я сначала заставил его работать на моей машине разработки, прежде чем тестировать его со всеми другими клиентами, поэтому я думал, что был в хорошей форме, пока не попытался подключиться к другому компьютеров и увидел, что он дает сбой, но только с мини-редиректором. К сожалению, моим потенциальным клиентам проще всего использовать мини-перенаправитель, поэтому совершенно необходимо, чтобы он работал с мини-перенаправителем. Я могу предоставить ответ / запросы от Fiddler, если это поможет кому-нибудь отладить это со мной.
Microsoft WebDav Redirector имеет известную ошибку, которая не позволяет вам использовать пространство имен XML по умолчанию. После добавления префикса пространства имен и пометки им всех моих элементов xml моя проблема исчезла.
http://lists.w3.org/Archives/Public/public-html/2011Jan/0263.html