2011-07-19 65 views
0

我想讓Mercurial hgweb使用ISAPI工作以下這兩個鏈接http://blog.jaredreisinger.comVampire Basic。該服務器是IIS 6.0 Windows服務器2003.使用沒有CGI的Mercurial hgweb在IIS 6.0中不工作

在同一臺機器上,我成功地使用了CGI for 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:\Inetpub\HgWeb\hgweb.config' 

和我hgweb.config我使用的最低配置

[paths] 
/= I:\CompanyName\Development\SVCProjects\* 

我使用Python 2.6.6,PyWin32用於Python 2.6的2.16,用於Py2.6的Windows的Mercurial 1.9以及用於Windows 0.42的ISAPI_WSGI。

編輯: 望着IIS日誌,我得到了下面幾行:

2011-07-19 3時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,不知道如何解決這個問題。

+0

有一個ISAPI_Rewrite規則將Hg請求重定向到hg/hgwebdir.cpi。我必須自己設定並忘記! –

回答

1

我通過使用「python -m win32traceutil」(從hgwebdir_wsgi.py源代碼註釋得到這個)找出原因。基本上它沒有加載模塊'hgwebdir_wsgi'。原因是Mercurial Python模塊1.9沒有使用win32安裝程序正確安裝。我從這裏嘗試了方法another SO question solution,但我沒有複製MFC71.dll,並且這對我不起作用。最後,我找到了這個鏈接issue2582,並在temporary solution之後下載了一個Mercurial Python win32安裝程序的非官方版本,它可以工作。

+0

沒有其他答案,我想我會讓我的答案 –

+0

與同樣的問題進行鬥爭。這個修復也爲我解決了它。 – TomZ

+0

很高興能幫到你。但我很驚訝他們仍然沒有修復win32安裝程序。 –