ASP.NET MVC HandleError
Como eu vou sobre o[HandleError]
filtrar em asp.net MVC Preview 5?
Eu defino o customErrors no meu arquivo Web.config
<customErrors mode="On" defaultRedirect="Error.aspx">
<error statusCode="403" redirect="NoAccess.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
e coloque [HandleError] acima da minha classe de controlador assim:
[HandleError]
public class DSWebsiteController: Controller
{
[snip]
public ActionResult CrashTest()
{
throw new Exception("Oh Noes!");
}
}
Então eu deixei meus controllers herdarem desta classe e chamar CrashTest () neles. Visual Studio pára com o erro e depois de pressionar f5 para continuar, eu fui reencaminhado para Error.aspx? Aspxerrorpath = / sxi.mvc / CrashTest (onde sxi é o nome do controlador usado. Claro que o caminho não pode ser encontrado e eu recebo "Erro do servidor no aplicativo '/'".
Este site foi portado da pré-visualização 3 para 5. Tudo corre (não era muito trabalho para a porta), exceto o tratamento de erros. Quando eu crio um novo projeto completo, o tratamento de erros parece funcionar.
Idéias?
--Nota--
Uma vez que esta questão tem mais de 3 mil visualizações agora, eu pensei que seria benéfico colocar o que eu estou usando atualmente (ASP.NET MVC 1.0). Noprojeto mvc contrib existe um atributo brilhante chamado "RescueAttribute". Você provavelmente deve checar também;)