We have a SharePoint 2010 farm with a web application running on a non standard port - i.e. 8484. We use an IIS URL Rewrite site to reverse proxy the SharePoint site. So, for example, requests forhttps://documents.somesite.net are proxied tohttp://xxx.xxx.xxx:8484/. This is working great except for in one place. When trying to delete a file, the browser makes a POST to /_vti_bin/client.svc/ProcessQuery. When this happens, URL Rewrite is not passing this to SharePoint. Instead, it returns a 404 to the client and the operation fails. When I look at the IIS logs of the URL Rewrite site, I can see the POST coming in from the client but when I check the SharePoint site IIS logs, there is no entry at all for the POST to /_vti_bin/client.svc.
This isn't a SharePoint problem because when I hit the site directly (bypassing URL Rewrite), it works just fine. The problem is URL Rewrite isn't passing the POST over to SharePoint. When I look at the IIS logs, I see plenty of other POSTs going through, just not for this particular file.
Here is a copy of the URL Rewrite rule with the IP of the target server removed:
<rule name="Root" stopProcessing="true">
<match url="^(.*)" />
<action type="Rewrite" url="http://xxx.xxx.xxx.xxx:8484/{R:1}" logRewrittenUrl="true" />
</rule>
I used Failed Request Tracing on the proxy site and it shows the request being evaluated by URL Rewrite, testing true and being rewritten but the request is never forwarded: