相关疑难解决方法(0)

ASP.NET MVC HandleError

我如何[HandleError]在asp.net MVC Preview 5中进行过滤?
我在我的Web.config文件中设置了customErrors

<customErrors mode="On" defaultRedirect="Error.aspx">
  <error statusCode="403" redirect="NoAccess.htm"/>
  <error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
Run Code Online (Sandbox Code Playgroud)

并将[HandleError]放在我的Controller类上面,如下所示:

[HandleError]
public class DSWebsiteController: Controller
{
    [snip]
    public ActionResult CrashTest()
    {
        throw new Exception("Oh Noes!");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我让我的控制器从这个类继承并在它们上调用CrashTest().视觉工作室在错误时停止并按下f5继续后,我被重新路由到Error.aspx?aspxerrorpath =/sxi.mvc/CrashTest(其中sxi是所用控制器的名称.当然道路无法找到,我得到"'''应用程序中的服务器错误."404.

这个站点从预览3移植到5.除了错误处理之外,所有东西都运行(没有太多工作要移植).当我创建一个完整的新项目时,错误处理似乎有效.

想法?

- 注意 -
由于这个问题现在有超过3K的视图,我认为放入我目前使用的(ASP.NET MVC 1.0)是有益的.在mvc contrib项目中有一个名为"RescueAttribute"的出色属性你也应该检查一下;)

asp.net-mvc handleerror custom-error-pages

109
推荐指数
4
解决办法
10万
查看次数

ASP.NET MVC中的500内部服务器错误

我在ASP.NET MVC工作.我正在使用部分视图,但当我点击特定链接时,我收到以下错误.

500内部服务器错误

如何解决这个错误?

asp.net-mvc

24
推荐指数
3
解决办法
7万
查看次数

ASP.NET MVC HandleError无法正常工作(customErrors设置为"On")

我相信我已经设置了我们的MVC应用程序以便[HandleError]正确使用.这是我的控制器:

[HandleError]
public class SupportController : BaseController {

    public ActionResult Toss() {
        throw new Exception("uh oh");
    }
    // snip
}
Run Code Online (Sandbox Code Playgroud)

已将我的customErrors标记设置web.config为"开启":

<customErrors mode="On"></customErrors>
Run Code Online (Sandbox Code Playgroud)

但是,我仍然在例外情况下获得黄色死亡屏幕.设置在我的断点Toss()动作表明,HttpContext.IsCustomErrorEnabled 设置为true.

我们没有对View Engine做任何事情,BaseController也没有任何混乱(和其他没有扩展它的控制器有相同的问题).

我在Windows XP上开发,并且当应用程序部署到服务器2003框(IIS 6)时会出现同样的问题.

我认为error.aspx页面上没有异常:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>

<asp:Content ID="errorContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        Sorry, an error occurred while processing your request.
    </h2>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

可能有一点不同的是,这个应用程序是在MVC Beta是最新版本时创建的,并且在它们发布时升级到RC然后升级到RTM.可能有一些怪异的设置从那里遗留下来?

我可以在其他应用程序上工作,所以我有点沮丧.

asp.net-mvc handleerror

14
推荐指数
1
解决办法
1万
查看次数

MVC HandleError返回错误500并查看错误页面

我正在使用VSC10的MVC 3并试图让[HandleError]工作.我在控制器中创建了一个测试来模拟崩溃,如下所示:

[HandleError]
public ActionResult Crash()
{
    throw new ApplicationException();
}
Run Code Online (Sandbox Code Playgroud)

还进入了web.config并添加了:

<customErrors mode="on" />
Run Code Online (Sandbox Code Playgroud)

如果我从Chrome运行,MVC将返回Shared/Error.aspx中的视图,因此这项工作正常.

如果我从IE 8运行,我得到它友好的错误页面("网站无法显示页面,最有可能的原因:......你可以尝试......").我进入IE工具并关闭"显示友好的HTTP错误消息"并再次运行,IE显示我的Error.aspx视图.显然我无法让用户更改此设置,但至少我知道我的Error.aspx正在返回.

所以我运行Fiddler,当我使浏览器转到我的Crash方法时,它显示即使MVC返回我的Error.aspx视图,它也会返回500结果.这会导致IE认为它有错误并使用友好页面覆盖我的页面.

我认为MVC应该返回结果200与我的Error.aspx页面而不是500.任何人都可以给我一些关于尝试什么的想法?

asp.net-mvc handleerror

3
推荐指数
1
解决办法
2856
查看次数