Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET中的自定义错误_C#_Asp.net_Razor - Fatal编程技术网

C# ASP.NET中的自定义错误

C# ASP.NET中的自定义错误,c#,asp.net,razor,C#,Asp.net,Razor,我的ASP.NET MVC应用程序中有一个自定义错误页 我通过在我的Web.config中包含以下内容来启用页面: <customErrors mode="On" defaultRedirect="Error"> <error statusCode="404" redirect="Missing" /> </customErrors> 我的错误页面如下: @模型手柄 <h1 class="text-danger">Error</h1

我的ASP.NET MVC应用程序中有一个自定义错误页

我通过在我的Web.config中包含以下内容来启用页面:

<customErrors mode="On" defaultRedirect="Error">
    <error statusCode="404" redirect="Missing" />
</customErrors>
我的错误页面如下: @模型手柄

<h1 class="text-danger">Error</h1>
<h3 class="text-danger">
    An @Model.Exception.GetType().Name has occurred
    while processing your request.</h3>
<div>
    @Model.Exception.Message
</div>
这在大多数情况下都有效。但是,当我得到以下异常时:

自创建数据库以来,支持“SiteDatabase”上下文的模型已更改。考虑使用代码第一迁移来更新数据库。

这会导致出现一些错误,导致错误页面无法正确显示,然后页面上会出现以下文本:

“/”应用程序中出现服务器错误

运行时错误 描述:处理您的请求时发生异常。此外,在执行第一个异常的自定义错误页时发生另一个异常。请求已被终止

我如何调试这个?我已经浏览了模板,似乎没有任何错误

支持“SiteDatabase”上下文的模型自 数据库已创建。考虑使用代码第一迁移来更新 数据库

这个错误在数据访问层很深。如果没有多个层,请检查实体框架相关类

您的配置用于在发生错误时重定向应用程序。但是这个错误甚至在应用程序加载到内存之前就发生了,或者它非常严重,以至于使整个.NET应用程序崩溃

您可以选择创建一个静态HTML页面作为默认重定向,如下所示:

错误页面的外部依赖项应尽可能少。考虑删除对母版页、布局页、CSS、JavaScript和图像的外部依赖项。这样做的原因是,当显示错误页面时,当涉及到应用程序或服务器的状态时,您不能假设任何情况。数据库可能已关闭,可能存在随机运行时错误,CDN可能已关闭,等等

尽可能使其成为一个静态的、包罗万象的页面,类似于GitHub的错误页面:


更多信息:

看起来您的错误处理页面正在重定向到控制器,然后控制器将模型传递到razor视图。发生的错误表明模型对象HandleErrorInfo未正确填充,例如,Exception属性未填充异常

我想您的错误处理控制器可以正确地处理razor视图级错误,但当它发生在更深的层(如提供的层)时(这是实体级错误),您的HandleErrorInfo没有正确填充

要进一步检查原因,请在控制器中上载代码