Я хочу использовать Application_Error() в global.asax для регистрации неверных URL-адресов на веб-сайте и перенаправления на страницу пользовательской ошибки. Проблема в том, почему веб-сайт не проходит через ошибку приложения, когда контроллер не существует.Не пропускать через ошибку приложения, когда контроллер не существует
Я тестировал следующий URL, и все прошло через ошибки приложения:
Это один не проходит через ошибки приложения и возвращает 404:
Применение Код ошибки:
protected void Application_Error(object sender, EventArgs e)
{
var requestTime = DateTime.Now;
Exception ex = Server.GetLastError().GetBaseException();
//log Request.Url.ToString()
}
RouteConfig.cs код:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Account",
url: "Account/{action}/{id}",
defaults: new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Home",
url: "Home/{action}/{test}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "HomeBlank",
url: "",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Является ли HandleErrorAttribute зарегистрированным в качестве глобального фильтра? Считаете ли вы использование ELMAH (который регистрирует все исключения по умолчанию)? –
Да, HandleErrorAttribute добавлен. Я проверю ELMAH. Спасибо. – Tonned