ASP.Net MVC HandleError jogando 500 Internal Server Error

votos
2

Eu tenho o seguinte filtro de HandleError em meu controlador:

[HandleError (ExceptionType = typeof (ArgumentException), Vista = DestinationError)]

Eu já set-up o Web.Config para que customErrors está. O problema que estou tendo é que o filtro de HandleError está funcionando bem, quando eu executar o aplicativo localmente fora do Visual Studio, mas quando eu implantá-lo no servidor de tudo que eu vejo é um Internal Server Error 500, indicando o ponto de vista de erro não pode ser encontrado.

Alguém se deparar com isso antes, eu estou desconfiado de que o roteamento pode ser a causa raiz do problema (hoho). O site é distribuído em um diretório na raiz web, em vez de no próprio wwwroot, por isso, talvez IIS não conseguir localizar o arquivo de erro.

Publicado 10/12/2008 em 13:05
fonte usuário
Em outras línguas...                            


4 respostas

votos
3

Para responder a minha própria pergunta a magia é desligar erros HTTP no IIS. Não estou contente com esta solução alternativa, então se alguém tiver alguma idéia melhor, eu adoraria ouvi-los.

Respondeu 10/12/2008 em 13:42
fonte usuário

votos
0

E se você tentar o seguinte?

Response.TrySkipIisCustomErrors = true;
Respondeu 05/08/2009 em 03:43
fonte usuário

votos
3

Caso contrário, você pode usar a configuração Web.Config e configurá-lo para as ações do controlador esperado. Como isso:

    <customErrors mode="On" defaultRedirect="/Error">
        <error statusCode="404" redirect="/Error/NotFound"/>
    </customErrors>

Então imagine que você tem um controlller erro (/ Erro), que aponta para uma ação de índice

public class ErrorController : Controller
{
    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult Index()
    {
        Response.StatusCode = (int)HttpStatusCode.InternalServerError;
        return View("Index");
    }

    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult NotFound()
    {
        Response.StatusCode = (int)HttpStatusCode.NotFound;
        return View("NotFound");
    }
}
Respondeu 06/08/2009 em 02:04
fonte usuário

votos
0

Eu tive o mesmo problema após a migração para MVC 3 RC. Conseguiu contornar o problema adicionando a página de layout / master.

@inherits System.Web.Mvc.WebViewPage<System.Web.Mvc.HandleErrorInfo>

@{
    View.Title = "Error";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Agora, o erro interno do servidor é ido, mas eu acho que é um bug em algum lugar.

Respondeu 08/12/2010 em 10:50
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more