In trying to get my application to produce 404 errors correctly, I have implemented a catch all route at the end of my route table, as shown below:
routes.M
//this catches all requests routes.MapRoute( "Error", "{*.}", new { controller = "PublicDisplay", action = "Error404" } );
add this route at the end the routes table