C# ASP.NET中的自定义错误
我的ASP.NET MVC应用程序中有一个自定义错误页 我通过在我的Web.config中包含以下内容来启用页面: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
<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没有正确填充 要进一步检查原因,请在控制器中上载代码