I have an ASP.NET MVC 4 application running on Azure. I have some custom routes for things that look like filenames (i.e. "favicon.ico"). These filename-like routes have worked fine for the past 2 years without problems. However, when I upgraded from Azure SDK 1.7 to 1.8, these filename-like routes stopped working.
It works fine in the local debugging environment with IIS express, so it doesn't appear to be a web.config file or a RouteCollection issue.
We have "runAllManagedModulesForAllRequests" set to "true" and "RouteTable.Routes.RouteExistingFiles = true". Furthermore, these file-like routes do not exist on disk.
I checked the Failed Request Trace Logs on both a pre-upgrade and post-upgrade machine. They appear to be similar except that the working pre-upgrade deployment has a FREB "HANDLER_CHANGED" event from "StaticFile" to "System.Web.Mvc.MvcHandler" whereas the bad post-upgrade deployment never does (it stays with the "StaticFile" handler) and eventually sends a 404.
Thus, it appears that the UrlRoutingModule is no longer properly resolving the route if it has an extension and thus not giving the MvcHandler. However, all non-extension routes are working fine (i.e. "some/test") so it appears that IIS is somehow now preventing the resolution of a route with an extension even though in the FREB log I'm seeing "NOTIFY_MODULE_START" on the "UrlRoutingModule-4.0" module.
Am I missing something basic? Where should I look next?
UPDATE: Upgrading our ServiceConfiguration.Cloud.cscfg to "osFamily" 3 (Windows Server 2012) and thus IIS 8 as well made this problem go away. I'm not sure what was happening, but am glad it's no longer present. I'd love to hear in the comments or additional answers of further debugging insights that might be helpful in situations like these since FREB-ing wasn't as helpful as I'd hoped.