I am having a similar problem. I can push/pull some source files, directories, and a .jar file to/from a Mercurial 1.5.4 server running IIS7.5 via HTTPS. (configured roughly as per http://www.jeremyskinner.co.uk/mercurial-on-iis7/).
I successfully committed to my local repository a changeset that added 6 large .exe, .dmg etc installer files (about 130Mb total). However when I attempt to push this changeset to the remote server (remembering I have no problems pushing lots of small source files, txt files, .class files, or a .jar file), my client (MacHG) is reporting the error "Error During Push. Mercurial reported error number 255: abort: HTTP Error 404: Not Found".
I checked on IIS, and the CGI handler is configured to handle ALL verbs (not just GET, POST and HEAD).
My hgweb.cgi file is as follows:
#!/usr/bin/env python
#
# An example hgweb CGI script, edit as necessary
# Path to repo or hgweb config to serve (see 'hg help hgweb')
#config = "/path/to/repo/or/config"
# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")
# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb('C:\inetpub\wwwroot\hg\hgweb.config')
wsgicgi.launch(application)
My hgweb.config file is as follows:
[collections]
C:\Mercurial Repositories = C:\Mercurial Repositories
[web]
baseurl = /hg
allow_push = usernamea
allow_push = usernameb
Could someone please help?!