Search code examples
pythoniis-6mercurial

Hosting Mercurial with IIS 6


I'm trying to set up Mercurial repositories to be hosted by IIS under Windows Server 2003. Following this post I installed Python 2.5.4.4 and Mercurial 1.3, set up virtual dir, extracted library.zip and created hgwebdir.config.

However, when I trying to open the http://hostname/hg/hgwebdir.cgi I got an error “The specified CGI application misbehaved by not returning a complete set of HTTP headers.” I did all by best:

  1. Checked IIS mappings to both .py and .cgi extensions. I even tried to use FastCGI with no success.
  2. Created “Hello World” in the same dir and checked that it works fine.
  3. Checked read/exec permissions to Python, IIS and repos directories for IUSR, IWAM and NETWORK SERVICE.
  4. Tried to apply two different patches from Mercurial mailing list. Since they both are old I haven't success with it.
  5. INstalled Sysinternals' procmon and checked for filesystem errors during request. I found nothing except lots of Buffer Overflow results in Python process while it loads it's libraries.
  6. Tried to add 'Content-type: text/html' to the script.

One more thing is when I'm requesting inexistent script file (e.g /hg/inexist.cgi) I have the same error. Nothing helped!


Solution

  • Finally I got that "no headers" error returned on any python script error, so I checked script with console interpreter and fixed errors in my config file. And of course I should ask this question at ServerFault instead of StackOverflow - the lack of sleep did the job :)