Использование Mercurial hgweb без CGI не работает в IIS 6.0
Я пытаюсь заставить работать Mercurial hgweb с использованием ISAPI по этим двум ссылкам: http://blog.jaredreisinger.com и Vampire Basic. Сервер IIS 6.0 Windows Server 2003.
Год назад на той же машине я успешно запустил Mercurial hgweb, используя CGI для TortoiseHG 1.0 в качестве эксперимента, но по некоторым причинам, когда я пытался добавить проекты TortoiseHG 1.9+, веб-сайт хранилища был сломан, и, похоже, каталог.hg имел совсем другие файловые структуры для 1.0 и 1.9+, я думаю, что самый простой способ - это создать новый репозиторий и веб-каталог.
Поэтому на этот раз после поиска более обновленной информации по настройке Mercurial я решил выбрать маршрут ISAPI вместо CGI, так как он кажется более простым в настройке и должен быть быстрее в работе (хотя для меня это не имеет большого значения).
Но после поэтапного следования обеим статьям я всегда получаю сообщение об ошибке в Chrome: "Системе не удалось найти введенную опцию среды". каждый раз после перезапуска IIS, а затем сообщение будет изменено на "Unspecified error", если я обновлю страницу.
Если я просматриваю эту страницу в IE, появится сообщение об ошибке "Веб-сайт не может отобразить страницу HTTP 500".
В обоих случаях сообщение об ошибке не очень полезно, и я действительно понятия не имею, в чем может быть проблема. Не знаю, есть ли способ получить более подробную информацию о журнале / отладке? Иначе без достаточного количества информации было бы трудно любому, кто пытается помочь мне также.
Для моего hgwebdir_wsgi.py я только изменил эту строку:
# Configuration file location
hgweb_config = r'c:\Inetpub\HgWeb\hgweb.config'
и для моего hgweb.config я использую минимальный конфиг
[paths]
/ = I:\CompanyName\Development\SVCProjects\*
Я использую Python 2.6.6, PyWin32 2.16 для Python 2.6, Mercurial 1.9 для Windows для Py2.6 и ISAPI_WSGI для Windows 0.42.
Изменить: Глядя на журнал IIS, я получил следующие строки:
2011-07-19 03:42:51 W3SVC1 127.0.0.1 GET /hg/hgwebdir.cgi - 443 pstar 127.0.0.1 Mozilla / 5.0 + (Windows + NT + 5.2) + AppleWebKit / 534.30 + (KHTML, + like + Gecko) + Chrome / 12.0.742.122 + Safari / 534.30 500 0 203 333 435
2011-07-19 03:42:51 W3SVC1 127.0.0.1 GET /favicon.ico - 443 - 127.0.0.1 Mozilla / 5.0 + (Windows + NT + 5.2) + AppleWebKit / 534.30 + (KHTML, + like + Gecko) + Chrome / 12.0.742.122 + Safari / 534.30 404 0 2 1830 358
Похоже, что IIS все еще пытается использовать hgwebdir.cgi, который я уже удалил, не знаю, как это исправить.
1 ответ
Я выясняю причину с помощью "python -m win32traceutil" (получено из комментариев исходного кода hgwebdir_wsgi.py). По сути, он не смог загрузить модуль 'hgwebdir_wsgi'. Причина в том, что модуль Mercurial Python 1.9 не был установлен должным образом с помощью установщика win32. Я попробовал метод отсюда другое решение вопроса SO за исключением того, что я не скопировал MFC71.dll, и это не работает для меня. Наконец, я нашел эту ссылку проблему 2582, и после временного решения, загрузив неофициальную сборку установщика Mercurial Python win32, и она работает.