Я реализую пользовательские ошибки в своем приложении MVC3, оно включено в web.config:
<customErrors mode="On">
<error statusCode="403" redirect="/Errors/Http403" />
<error statusCode="500" redirect="/Errors/Http500" />
</customErrors>
Мой контроллер очень простой, с соответствующими правильно названными представлениями:
public class ErrorsController : Controller
{
public ActionResult Http403()
{
return View("Http403");
}
public ActionResult Http500()
{
return View("Http500");
}
}
Для проверки я бросаю исключения в другой контроллер:
public class ThrowingController : Controller
{
public ActionResult NotAuthorised()
{
throw new HttpException(403, "");
}
public ActionResult ServerError()
{
throw new HttpException(500, "");
}
}
403 работает - меня перенаправляют на мой пользовательский "/Errors/Http403".
500 не работает - вместо этого меня перенаправляют на страницу ошибки по умолчанию в общей папке.
Любые идеи?