Мне нужно глобально перенаправить моих пользователей, если в моем приложении появляется пользовательская ошибка. Я попытался вставить некоторую логику в мой файл global.asax для поиска моей пользовательской ошибки и, если она возникла, выполнить перенаправление, но мое приложение никогда не использует мой метод global.asax. Он продолжает выдавать ошибку, в которой говорится, что мое исключение не было обработано кодом пользователя.
вот что у меня есть в моем глобальном.
protected void Application_Error(object sender, EventArgs e)
{
if (HttpContext.Current != null)
{
Exception ex = HttpContext.Current.Server.GetLastError();
if (ex is MyCustomException)
{
// do stuff
}
}
}
и мое исключение выдается следующим образом:
if(false)
throw new MyCustomException("Test from here");
когда я вставляю это в попытку catch из файла, генерирующего исключение, мой метод Application_Error никогда не достигается. У кого-нибудь есть предложения относительно того, как я могу справиться с этим в глобальном масштабе (справиться с моим пользовательским исключением)?
спасибо.
1/15/2010 изменить:
Вот что есть в // делать вещи.
RequestContext rc = new RequestContext(filterContext.HttpContext, filterContext.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { Controller = "Home", action = "Index" })).VirtualPath;
filterContext.HttpContext.Response.Redirect(url, true);