gpt4 book ai didi

asp.net-mvc - 即使设置了CustomError ="On",自定义错误页面也不会显示

转载 作者:行者123 更新时间:2023-12-04 05:04:16 34 4
gpt4 key购买 nike

我将Visual Studio 2012与MVC 4 Framework结合使用,并且如果未处理异常,希望查看共享文件夹的友好错误页面。 (我知道,作为开发人员,我需要查看错误详细信息,但我只想测试此设置)
到目前为止,我知道在web.config的system.web部分中添加以下代码应该可以解决问题

<customErrors mode="On" />

不幸的是,我得到的不是我的友好错误页面:

Server Error in '/' Application.

Runtime Error Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed.

Details: To enable the details of this specific error message to be viewable on the local server machine, please create a tag within a "web.config" configuration file located in the root directory of the current web application. This tag should then have its "mode" attribute set to "RemoteOnly". To enable the details to be viewable on remote machines, please set "mode" to "Off".


 <!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly"/>
</system.web> </configuration>

Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's configuration tag to point to a custom error page URL.


 <!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="mycustompage.htm"/>
</system.web> </configuration>

我想按照说明进行操作,而不是像向HomeController添加操作,设置路由之类的解决方法。
以下是应该起作用的引用:
http://pluralsight.com/training/players/PSODPlayer?author=scott-allen&name=mvc3-building-controllers&mode=live&clip=0&course=aspdotnet-mvc3-intro
(在左侧选择“操作过滤器”一章,然后跳至分钟3:30)

更新(链接已更改):
http://pluralsight.com/training/Player?author=scott-allen&name=mvc4-building-m2-controllers&mode=live&clip=0&course=mvc4-building
(在顶部单击指出“ASP.NET MVC 4中的 Controller ”的细线,然后单击“ Action 过滤器”并跳至分钟5:00)

有人知道为什么我看不到上述设置的友好错误页面吗?
提前致谢!

最佳答案

这是执行此操作的分步指南,

首先,首先将“customErrors”的mode属性设置为“on”。 (这指定启用自定义错误。)

1.来自Web.config的代码

<system.web>

<customErrors mode="On"></customErrors>

</system.web>

下面是我的 Controller 代码,我在 Controller 类上指定了HandleError属性。同样为了产生错误,我在Index操作中引发了异常。

2.来自HomeController.cs的代码
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
throw new Exception("Error Occured !");
ViewBag.Message = "Welcome to ASP.NET MVC!";

return View();
}

public ActionResult About()
{
return View();
}
}

如下面的屏幕快照所示,我在Views文件夹的Shared文件夹中定义了一个Error.cshtml View 。

3.解决方案资源管理器

请注意,Error.cshtml View (如下所示)使用的是“System.Web.Mvc.HandleErrorInfo”模型

4. Error.cshtml中的代码
@model System.Web.Mvc.HandleErrorInfo

@{
ViewBag.Title = "Error";
}

<h2>
Sorry, an error occurred while processing your request.
</h2>

在运行项目时,我没有得到黄色的死亡屏幕,而是得到以下输出。

取自 this article

更新:

通过创建一个新项目来尝试这一点,这应该并且确实可行。我怀疑您的 Error.cshtml文件可能不具有 @model System.Web.Mvc.HandleErrorInfo的模型,或者您可能在不同的 View 文件夹中具有多个Error.cshtml页面。

关于asp.net-mvc - 即使设置了CustomError ="On",自定义错误页面也不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823520/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com