Mercurial hgweb在没有CGI的情况下使用在IIS 6.0中不起作用

Mercurial hgweb在没有CGI的情况下使用在IIS 6.0中不起作用,mercurial,hgweb,Mercurial,Hgweb,我正试图让Mercurial hgweb使用ISAPI按照这两个链接和。服务器是IIS 6.0 Windows server 2003 一年前,我在同一台机器上成功地使用CGI for TortoiseHG 1.0运行Mercurial hgweb,作为一项实验,但由于某些原因,当我尝试添加TortoiseHG 1.9+项目时,存储库网站将崩溃,并且.hg目录在1.0和1.9+中的文件结构似乎完全不同,我认为最简单的方法是创建新的存储库和web目录 因此,这次在寻找了更多关于设置Mercuria

我正试图让Mercurial hgweb使用ISAPI按照这两个链接和。服务器是IIS 6.0 Windows server 2003

一年前,我在同一台机器上成功地使用CGI for TortoiseHG 1.0运行Mercurial hgweb,作为一项实验,但由于某些原因,当我尝试添加TortoiseHG 1.9+项目时,存储库网站将崩溃,并且.hg目录在1.0和1.9+中的文件结构似乎完全不同,我认为最简单的方法是创建新的存储库和web目录

因此,这次在寻找了更多关于设置Mercurial的最新信息之后,我决定采用ISAPI路线而不是CGI,因为它似乎更容易设置,而且应该运行得更快(这对我来说并不重要)

但在一步一步地阅读这两篇文章之后,我总是在Chrome中出现错误消息:“系统找不到输入的环境选项。”每次我重新启动IIS后,如果我刷新页面,消息将更改为“未指定的错误”

如果我在IE中查看此页面,错误消息将是“网站无法显示HTTP 500页面”

在这两种情况下,错误消息都不是很有帮助,我真的不知道问题出在哪里。我不知道有没有办法获得更详细的日志/调试信息?否则,如果没有足够的信息,任何人也很难帮助我

对于我的hgwebdir_wsgi.py,我只更改了这一行:

# Configuration file location
hgweb_config = r'c:\Inetpub\HgWeb\hgweb.config'
对于我的hgweb.config,我使用的是最小配置

[paths]
/ = I:\CompanyName\Development\SVCProjects\*
我正在使用Python2.6.6,PyWin32 2.16用于Python2.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.30404021830358


看来IIS仍在尝试使用我已经删除的hgwebdir.cgi,但不知道如何修复它。

我通过使用“python-m win32traceutil”(从hgwebdir_wsgi.py源代码注释中获得)找到了原因。基本上,它无法加载模块“hgwebdir_wsgi”。原因是没有使用win32 installer正确安装Mercurial Python模块1.9。我在这里尝试了这个方法,但我并没有复制MFC71.dll,这对我不起作用。最后,我找到了这个链接,并通过下载Mercurial Python win32安装程序的一个非官方版本遵循了这个链接,它可以正常工作

有一个ISAPI_重写规则将Hg请求重定向到Hg/hgwebdir.cpi。我必须自己设置它,忘记它!没有其他答案,我想我会用同样的问题来回答。这个补丁也帮我解决了。很高兴我能帮上忙。但是我很惊讶他们仍然没有修复win32安装程序。