IIS中的Hgweb“推送”返回502错误的网关

问题描述

| 我已经安装了hgweb并在II7 7上运行(在Windows Server 2008上)。 Web界面可以正常工作,我可以在其中查看,提取和克隆存储库。但是我无法推送,这样做会在“正在搜索更改”之后立即出现502错误。使用--debug将最后几行显示为:
sending unbundle command
sending 622 bytes
HTTP Error: 502 (Bad Gateway)
我正在使用TortoiseHG进行推送,但是在使用Mercurial命令行时,结果是相同的。 我在这里遵循了该教程:http://www.sjmdev.com/blog/post/2011/03/30/setting-mercurial-18-server-iis7-windows-server-2008-r2.aspx来设置hgweb。     

解决方法

        看起来像一个老问题,但肯定有人会再次遇到这个问题。我快要在墙上画一个黑圈了……无论如何,对我们来说,问题是中央存储库的创建方式。我们以本地管理员的身份远程连接到计算机时,从BitBucket克隆了它。 问题出在[Repository] ​​.hg文件夹中。您需要为其设置正确的权限。尝试添加所有人->完整权限以进行测试。之后请确保将其更改为专用的网络登录名或适当的本地帐户。 我看到的是完全相同的行为-即使在所有时间都遇到了错误的网关的情况,即使push都可以正常工作。设置正确的权限后,问题就消失了。 现在考虑一下,最好的解决方案可能是将使用该存储库的每个网络登录名添加到计算机用户,然后为本地用户设置对.hg文件夹的访问权限。 希望它可以帮助某人。     ,        尝试使用ISAPI模块方法代替此处所述的执行phython.exe的CGI。这里还有另一个相关的问题,并且可能也是重复的问题。     ,        看一下hgweb.config文件中的\'Push_ssl \'设置。 我遇到了同样的错误(我的设置为\'* \'),并且能够通过完全删除该行来解决它。的确,这使Mercurial的安全性降低了一些,但在我研究服务器上正确配置SSL的同时(暂时),它使我能够解决配置问题。 您可能还需要查看\'Allow_push \'设置,以解决更多错误(或重新查看您的授权)。 注意:至少就我而言,仅凭\'push_ssl = false \'是不够的,因为这会导致进一步的错误(授权失败)。 (同样,这只是暂时的解决方案,直到可以正确保护服务器为止。)     ,        可能由于各种原因而发生,以获取有关错误运行的更多详细信息 hg push --config ui.usehttp2 = true --config ui.http2debuglevel = info 例如,可能由于代理服务器而出现问题,或者只是在Mercurial Web服务器“忘记”它需要服务的存储库的情况下:如果您使用的是TortoiseHg工作台,请转到Workbench UI,存储库->启动Web服务器,请确保您的存储库在提供的存储库列表中。     ,        尝试在.hg / hgrc中使用https代替http,我已经为code.google.com解决了此问题。     ,        我遇到了这个问题,最终导致服务器磁盘空间不足。