Although I use IIS7 to host all my websites and stuff, I use Apache to provide access to my Subversion repositories and to host a Trac issue tracking system (they both have much better support for Apache than for IIS - sad from my viewpoint but true). When the two IIS modules came out (ARR module and URL rewrite module) I thought it would allow me to nicely hide Apache "behind" IIS (domain dev.example.com should be handled by Apache, all other domains by IIS).
What I did:
1) I installed Apache on port 8080
2) I installed the two IIS modules mentioned above (ARR and URL rewriting)
3) I created a URL rewrite rule like this:
pattern to match: (.*)
condition: HTTP_HOST matches the pattern dev\.example\.com
action: rewrite to http://localhost:8080/{R:1} (append query string = true)
It was working quite nicely, in fact Trac was working without any problems (including authentication etc.) but unfortunately SVN did not always work. When I was trying to commit more files together, I was getting a message like this:
Commit failed (details follow):
'/svn/!svn/wrk/296e0144-c11a-ee4b-8aee-d42f56739d47/trunk/AjaxDataServices/App_Data'
path not found
There are many things that could have gone wrong - IIS not handling the commit request correctly, Apache not handling the request correctly, a bug in SVN_DAV modude for Apache, bug in SVN itself, corrupted SVN repository etc. What I tried was to open an 8080 port on firewall and trying to send the commit request to Apache directly - guess what, it worked.
So there might be a couple of possible issues:
1)I have not configured IIS correctly - but for instance Trac (which is mostly simple HTTP GET or POST requests and responses) worked fine. SVN on the other hand uses HTTP verbs like PROPFIND, CHECKOUT etc. - is it possible that this is causing problems?
2) IIS+ARR is not supposed to support this scenario (reverse proxy for Apache)
3) Something else?
I would be really thankful if someone from the team could give me some hints what could be possibly wrong.
Many thanks,
Borek