I'm having an issue the the URL Rewrite module, and I believe the issue stems from the URL Routing module. Here's what I have setup:
Two sites in IIS(7.5); the default website and a secondary site that certain requests are directed to. The secondary website has a binding to web2.website.com. I use the URL Rewrite module to direct certain URL paths to the secondary site (ex, www.website.com/support/ gets rewritten to web2.website.com/support/). The secondary website then has an outbound rule that rewrites all URLs from web2.website.com to www.website.com. This keeps one consistent base URL throughout the site.
This setup was working great until recently. Recently, the applications inside the primary website were upgraded and now make use of the URL Routing Module (I'm not positive, but I believe it's for things like Friendly URLs. I don't have access to the code that runs in this site, so I can't be sure). Since the upgrade, any requests that used to be rewritten to the secondary site now result in a 404. However, any requests that are intended to the primary site complete successfully.
I've used failed request tracing to examine the failed requests. What I see is that when a request comes in that should be rewritten, it is successfully rewritten to the correct URL by the URL Rewrite Module. However, farther down the pipeline, the URL Routing module errors out and sets the response status to 404. I'm guessing what's happening is that the rewritten URL isn't in the routing table for the primary website, so it throws the 404.
My question is this: Is there any way to suppress the URL Routing module in the event of a rule match from the URL Rewrite module? I've played around the module ordering but nothing seems to help. Another thing to note is that the primary site runs in integrated pipelining mode, and the secondary site has to run in classic mode (for compatibility reasons).
Any insight in to the issue or possible resolutions would be greatly appreciated.
↧