Our application uses the IIS UrlRewrite module to temporarily redirect requests during upgrades to a maintenance site. We have seen a few instances where even though the redirect rule has been removed, the server continues to redirect all requests according to the removed rule. There does not seem to be any pattern with this, and has only occurred once or twice.
We have taken the following steps to try and determine the cause of this behavior.
- Verified that the original rule was a 307 temporary redirect
- Requested the application from machines that had never requested it before
- Used a different browser
- Added and removed a dummy rule from the IIS management console
- Checked the http kernel cache using
netsh http show cachestate
- Modified the applicationHost.config file by hand (the rule was not still in the file, we just added a superfluous space)
In the past when this has happened, we have been able to restart IIS and it solves the problem but that is not always an option and we really want to figure out what the root cause is.
How or why would UrlRewrite be caching the response and not responding to configuration changes?