Asp.net mvc ASP.Net MVC HandleError抛出500内部服务器错误

Asp.net mvc ASP.Net MVC HandleError抛出500内部服务器错误,asp.net-mvc,handleerror,Asp.net Mvc,Handleerror,我的控制器上有以下HandleError筛选器: [HandleError(ExceptionType = typeof(ArgumentException), View = "DestinationError")] [HandleError(ExceptionType=typeof(ArgumentException),View=“DestinationError”)] 我已经设置了Web.Config,以便启用customErrors。我遇到的问题是,当我在Visual Studio外部本地

我的控制器上有以下HandleError筛选器:

[HandleError(ExceptionType = typeof(ArgumentException), View = "DestinationError")] [HandleError(ExceptionType=typeof(ArgumentException),View=“DestinationError”)] 我已经设置了Web.Config,以便启用customErrors。我遇到的问题是,当我在Visual Studio外部本地运行应用程序时,HandleError筛选器工作正常,但当我将其部署到服务器时,得到的只是一个500内部服务器错误,表明找不到错误视图


如果以前有人遇到过这种情况,我怀疑路由可能是问题的根本原因(hoho)。站点被部署到web根目录中,而不是wwwroot本身,因此IIS可能找不到错误文件。

要回答我自己的问题,关键是关闭IIS中的HTTP错误。我不喜欢这种解决方法,所以如果有人有更好的想法,我很乐意听听。

如果您尝试以下方法会怎么样

Response.TrySkipIisCustomErrors = true;

否则,您可以使用Web.Config配置并将其设置为预期的控制器操作。 像这样:

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

在迁移到MVC3RC之后,我遇到了同样的问题。设法通过添加布局/母版页来绕过它

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

@{
    View.Title = "Error";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@继承System.Web.Mvc.WebViewPage
@{
View.Title=“错误”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
现在内部服务器错误消失了,但我认为这是某个地方的错误

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

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