Использование пути UNC в качестве расположения путей в Mercurial IIS6 Server2003 - PullRequest
0 голосов
/ 18 мая 2010

Я использую последнюю версию Mercurial и Python 2.6; IIS6 использует метод ISAPI с подстановочными знаками для присоединения сайта к Mercurial hgwebdir_wsgi

[paths]
\ = \\COMP3254\TestRepo\*

[web]
baseurl = /
allow_push = *
push_ssl = false
style = monoblue

Настройка работает отлично, если я ссылаюсь на локальный диск E: \ repo *, но не работает, если я указываю сеть, как указано выше; Я предоставил серверу (MERCDEV01 $) полные права доступа к общей папке на COMP3254, я не могу представить ни одну другую причину, по которой он не будет работать.

Ответы [ 3 ]

0 голосов
/ 01 июня 2010

hgwebdir у меня тоже не работает с UNC-путями - это значит, что вы не можете использовать его в качестве сервера без размещения репозиториев на той же машине, что и веб-сервер.

0 голосов
/ 03 июня 2010

Окей .. Я решил это. Пользователь, использующий веб-сервер (в моем случае Apache), по умолчанию использует локальную систему, которая не имеет разрешения на доступ к сетевым ресурсам. Когда я изменил его на пользователя с доступом к домену (и дал этому пользователю доступ администратора к локальной машине), все работало нормально.

Запуск веб-сервера с такими привилегиями, конечно, рискованно, но в моем случае это внутренний сервер. Предположительно, вы можете выбрать нужные права, чтобы сделать это более безопасным способом.

0 голосов
/ 18 мая 2010

Может быть проблема делегирования. Вы можете выполнить NTLM-аутентификацию на веб-сервере (и ваши учетные данные будут доверены на его локальных дисках), но веб-сервер не может аутентифицировать вас в удаленном расположении, поскольку он не знает ваш пароль (то есть не может делегировать ваши учетные данные). ).

Вы пытались настроить сетевое местоположение как виртуальный каталог на сервере? Затем вы можете ввести учетные данные, которые IIS будет кэшировать и использовать для доступа к этому местоположению.

...