好的,所以我被这个问题难住了。我已经看到了很多应该解决这个问题的东西,但我没有得到一个可以满足我要求的解决方案。
我正在使用 ELMAH 记录异常,并且当 URL 具有无效控制器或正确的控制器和无效操作时,我会收到此异常。
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)
我想阻止这个异常被抛出。我正在使用自定义错误并且它们工作正常,因为应用程序将发送到我的自定义 404 错误页面。但是,仍然会记录异常。
我有[HandleError]
装饰所有控制器的属性。这可能吗?如果是这样,我将不胜感激。
我尝试过设置重定向的最终路由,但无论出于何种原因,它都匹配之前的路由。我试图使用httpModuleApplication_Error
,并在文件的情况下清除Global.asax
。没有什么能阻止例外。
再次感谢任何帮助!