ASP.NET MVC - Retornando um erro 500 com mensagem (explicando quando ocorre status code = 0)
Em desenvolvimento web podemos (devemos!) trabalhar com código protegido no lado do servidor (entre try...catch), para então - também - trabalharmos com mensagens amigáveis ao usuário, para isso para uma exceção gerada no servidor retornamos também a mensagem de erro tratada.
O exemplo abaixo é só um snippet no contexto MVC considerando método POST no Controller com retorno do tipo ActionResult:
Então no bloco catch temos:
return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, mensagem);
Sendo que a variável mensagem tem o valor de "ERROR FORÇADO NO SERVIDOR".Como resultado da chamada temos o seguinte retorno:Tudo certo, mensagem retornada, status code = 500.RESSALVA!!!Em uma outra simulação.return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, mensagemMuitoGrande);Digamos então que a variável mensagemMuitoGrande tenha um valor grande (não sei precisar o limite), pode ser um log mais completo do erro, não sei, qualquer conteúdo string que extrapole o limite.Você então irá se deparar com um problema que está relacionado ao tamanho do response e com isso a interceptação da exceção gerada terá um status code = 0, ao invés de 500, e nada de mensagem retornada.A informação mais completa no rastreamento da rede (fico devendo a imagem) exibe como "aborted", ou seja, o tal limite atingido faz com que o retorno do request seja "cancelado/abortado".
Comentários
Postar um comentário