Ok, so I am stumped on this issue. I have seen a lot of things that are supposed to resolve this issue, but I am not getting a resolution that can fulfill my requirements.
Wire up a custom controller factory that can execute your desired features when it fails to locate the requested controller. It's just a few lines of code, nothing too painful.
You can roll your own controller factory, or use one of the many libraries as a starting point. You'll have a class that implements IControllerFactory and inside the CreateController() function will be your custom logic.
Was probably not relaying my issue properly, after tons of digging around this exception is supposed to be thrown. The answer is to exclude those exceptions from ELMAH, according to this article.
By default, ELMAH logs the details of every unhandled exception, including 404 and other HTTP errors. You can instruct ELMAH to ignore these or other types of errors using error filtering.
Create a RouteConstraint, that checks if the controller exists (in fact, scans all possible controllers in beginning and caches it, you know what i mean) and add it to your standard route.
so,when you then have a request to a bad controller, it is not accepted by the normal Route. but then accepted by the catchall -> 404 route...
I use DSO's ITCloud Contrib. None of that {controller}/{action}
generic parameters. Explicit UrlRoute
attributes for each action method. I like seeing the parameter constraints directly above the method.