没有CGI的Mercurial hgweb在IIS 6.0中不起作用

时间:2011-07-19 01:42:37

标签: mercurial hgweb

我试图让Mercurial hgweb在这两个链接http://blog.jaredreisinger.comVampire Basic之后使用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\*

我使用的是Python 2.6.6,PyWin32 2.16 for Python 2.6,Mercurial 1.9 for Windows for Py2.6和ISAPI_WSGI for 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 个答案:

答案 0 :(得分:1)

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