Как обойти фильтр [HandleError]
в asp.net MVC Preview 5?
Я устанавливаю customErrors в свой файл Web.config
<customErrors mode="On" defaultRedirect="Error.aspx">
<error statusCode="403" redirect="NoAccess.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
и поставьте [HandleError] над моим классом контроллера следующим образом:
[HandleError]
public class DSWebsiteController: Controller
{
[snip]
public ActionResult CrashTest()
{
throw new Exception("Oh Noes!");
}
}
Затем я позволю своим контроллерам наследовать от этого класса и вызвать на них CrashTest(). Visual Studio останавливается при ошибке и после продолжения f5 меня перенаправляет на Error.aspx? Aspxerrorpath =/sxi.mvc/CrashTest (где sxi - это имя используемого контроллера. Конечно, путь не найден, и я получаю "Ошибка сервера в приложении /". 404.
Этот сайт был перенесен с предварительного просмотра с 3 по 5. Все работает (не так много работы с портом), кроме обработки ошибок. Когда я создаю полный новый проект, обработка ошибок работает.
Идеи?
- Примечание -
Поскольку этот вопрос имеет более 3K просмотров, я подумал, что было бы полезно использовать то, что я в настоящее время (ASP.NET MVC 1.0).
В проекте mvc contrib есть блестящий атрибут под названием RescueAttribute,
Вы должны, вероятно, проверить это тоже;)