HTTPS для Mercurial 1.9.2 на Windows Server 2008 / IIS 7 дает мне Errno 10054 - PullRequest
2 голосов
/ 04 октября 2011

Мы - небольшая компания (это магазин Microsoft), в настоящее время мы используем subversion с установленным VisualSVN (кстати, довольно легко настроить). В настоящее время я оцениваю Mercurial из-за ночных кошмаров в svn.

Итак, сначала язатем http://www.firegarden.com/software/hosting-mercurial-repo-iis7-windows-server-2008r2-x64-python-isapi-cgi с последним ртутным исходным кодом 1.9.2 и python 2.7 получил ошибку ниже

Failed to import callback module 'hgwebdir_wsgi'
The specified module could not be found.

, поэтому я поцарапал , а затем я последовал за http://www.jeremyskinner.co.uk/mercurial-on-iis7/ и это работало, пока я не достиг шага Включение SSL , в котором проблема.Я даже настроил SSL-сертификаты, используя OpenSSL http://www.dylanbeattie.net/docs/openssl_iis_ssl_howto.html.это ошибка, которую я получаю

URLError: [Errno 10054] An existing connection was forcibly closed by the remote host
[command returned code 255...]

На стороне сервера у меня есть этот hgweb.config

[collections]
C:\repository\hg = C:/repository/hg

[web]
#push_ssl = false
allow_push = *
baseurl = /hg
cacerts =

web.config

 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
<system.webServer>
    <handlers>
        <add name="Python" path="*.cgi" verb="*" modules="CgiModule" scriptProcessor="C:\Python27\python.exe -u &quot;%s&quot;" resourceType="Unspecified" />
    </handlers>
    <rewrite>
        <rules>
            <rule name="rewrite to hgweb" patternSyntax="Wildcard">
                <match url="*" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                </conditions>
                <action type="Rewrite" url="hgweb.cgi/{R:1}" />
            </rule>
        </rules>
    </rewrite>
    <security>
         <requestFiltering>
           <requestLimits maxAllowedContentLength ="2147482624" />
        </requestFiltering>
    </security>
</system.webServer>
<system.web>
    <httpRuntime executionTimeout="540000" maxRequestLength="2097151"/>
</system.web>

клиентская сторона hgrc

[paths]
default = https://webtest/hg/test/

[hostfingerprints]
webtest = 50:de:a4:d9:72:59:68:fd:91 ...

EDIT Я попытался установить MacHg на свой MacBook для тестирования.я использовал http://machghelp.jasonfharris.com/kb/connections/how-do-i-add-a-server-certificate-or-fingerprint-for-https как прохождение, и это работает !!так что это устраняет сервер (то есть сервер может выдвигать и извлекать данные как из http, так и из https), так что теперь я уверен, что это мой windows / TortoiseHg, у которого есть проблема.(но выполнение этих шагов для tortoiseHg мне ничего не дает :()

EDIT2 Еще один вывод ... я даже не могу клонировать с помощью https, он работает только для http. Я пыталсяклонируйте один из проектов codeplex, используя https, и это работает! ... Это действительно расстраивает

Я что-то упустил? любая помощь будет оценена.

Ответы [ 5 ]

1 голос
/ 14 октября 2011

Настройка сертификатов с помощью Mercurial описана в https://www.mercurial -scm.org / wiki / CACertificates

На этой странице есть примечание с надписью «используйте openssl, а не IIS,генерировать сертификаты "- очевидно, самозаверяющие сертификаты IIS7 не проверяются в библиотеке SSL, используемой Mercurial.

Если вы установите TortoiseHg, ваши сертификаты Mercurial будут считаны из hgrc.d / cacert.pm.Это означает, что вы должны добавить свой самозаверяющий сертификат здесь.

В противном случае самый эффективный способ получить помощь в устранении неполадок при установке - это Mercurial IRC

0 голосов
/ 29 июня 2013

Я написал несколько подробных инструкций по настройке Mercurial для работы под IIS .Мы на Mercurial 2.6, и это работает.

0 голосов
/ 28 июня 2013

Я просто публикую это для всех, кто входит в ветку поиска.

В настоящее время существует проблема с использованием расширения largefiles в модуле python mercurial при размещении через IIS.См. этот пост , если вы столкнулись с проблемами при передаче больших наборов изменений (или больших файлов) в IIS через TortoiseHg.

В конечном итоге проблема заключается в ошибке обработки SSL, представленной в Python 2.7.3 (вероятно, объясняет, почему существует так много неразрешенных сообщений людей, которые ищут проблемы с Mercurial).Откат к Python 2.7.2 позволил мне продвинуться немного дальше (заблокировано при толчках 30 МБ вместо 15 МБ), но для правильного решения проблемы мне пришлось установить утилиту IISCrypto , чтобы полностью отключить передачу по SSLv2.

0 голосов
/ 21 июня 2013

Убедитесь, что вы зашли в настройки IIS SSL и отметили «игнорировать» на клиентских сертификатах.

0 голосов
/ 22 декабря 2011

Это работало, когда я использовал более старую версию, т.е. Mercurial 1.8.4. Поэтому я прекратил расследование дальше

...