我试图让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+,我认为最简单的方法是创建新的仓库和web目录。
所以这次在寻找更多关于设置Mercurial的更新信息后,我决定采用ISAPI路由而不是CGI,因为它似乎更容易设置并且应该更快地运行(对我来说不是很重要)。
但是在一步一步地遵循这两篇文章之后,我总是在Chrome中出现错误信息:"系统找不到输入的环境选项。"每次第一次重启IIS后,提示信息就会变为"未指定错误"。如果我刷新页面
在IE中查看此页,错误提示为"网站无法显示HTTP 500页面"
在这两种情况下,错误信息都不是很有帮助,我真的不知道是什么问题。不知道是否有任何方法可以获得更详细的日志/调试信息?否则,如果没有足够的信息,其他人也很难帮助我。
对于我的hgwebdir_wsgi.py,我只更改了这一行:
# Configuration file location
hgweb_config = r'c:InetpubHgWebhgweb.config'
和我的hgweb。我使用的是最小配置
[paths]
/ = I:CompanyNameDevelopmentSVCProjects*
我使用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 pstar127.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,不知道如何修复
我通过使用"python -m win32traceutil"(从hgwebdir_wsgi.py源代码注释中获得的)找出原因。基本上它无法加载模块'hgwebdir_wsgi'。原因是使用win32安装程序没有正确安装Mercurial Python模块1.9。我从这里尝试了另一个SO问题解决方案,除了我没有复制MFC71.dll,这对我不起作用。最后,我找到了这个链接问题2582,并通过下载Mercurial Python win32安装程序的非官方构建遵循临时解决方案,它可以工作。