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.
I am using ELMAH to log exceptions and am getting this exception when either a URL with invalid controller or proper controller and invalid action.
System.Web.HttpException: The controller for path '/BadController' was not found or does not implement IController.
at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state)
at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
I want to stop this exception from being thrown. I am using custom errors and they work fine, as the application will send to my custom 404 error page. However, the exception still gets logged.
I have the [HandleError]
attribute decorating all controllers. Is this possible? And if so I would appreciate any help.
I have tried, setting a final route that redirects, but it is matching a route previous to that for whatever reason. I have attempted to use a httpModule, and clearing in the Application_Error
event of the Global.asax
file. Nothing is stopping that exceptions.
Thanks again for any help!