ASP.NET MVC错误记录在Global.asax和Error.aspx中
我正在创建一个ASP.NET MVC应用程序。我需要处理两个地方的异常 Global.asax.vb文件:ASP.NET MVC错误记录在Global.asax和Error.aspx中,.net,asp.net-mvc,model-view-controller,error-handling,global-asax,.net,Asp.net Mvc,Model View Controller,Error Handling,Global Asax,我正在创建一个ASP.NET MVC应用程序。我需要处理两个地方的异常 Global.asax.vb文件: Public Class MvcApplication Inherits System.Web.HttpApplication ... Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) LogException(HttpContext.Current.Server.
Public Class MvcApplication
Inherits System.Web.HttpApplication
...
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
LogException(HttpContext.Current.Server.GetLastError(), Request)
End Sub
Shared Sub LogException(ByVal ex As Exception, ByRef r As System.Web.HttpRequest)
...
End Sub
End Class
Views\Shared\Error.aspx文件:
<%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage(Of System.Web.Mvc.HandleErrorInfo)" %>
<script runat="server">
Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs)
MvcApplication.LogException(Model.Exception, Request)
End Sub
</script>
...
加载子页(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)
mvcapapplication.LogException(Model.Exception,Request)
端接头
...
但我得到了这个错误:
C:\inetpub\example.com\Views\Shared\Error.aspx(5):错误BC30451:未声明名称“MVCAPApplication”
我应该在哪里定义LogException()函数,以便可以从Global.asax.vb文件和Error.aspx文件访问它?最具MVC风格的地方在哪里?最具MVC风格的方法是使用ActionFilters来处理(记录)异常 查看以下示例:
您可能想尝试一个名为ELMAH的模块。Scott Hanselman说“ELMAH是ASP.NET错误的Tivo”。我目前正在使用它来记录我的ASP.NET+MVC应用程序中的错误,它的工作方式很有魅力。安装很简单,因为只需向web.config添加行即可。您甚至可以限制谁有权查看错误日志
实际上,我能收集到的信息是,您只缺少一条指令:
<%@ Import Namespace="[Your default namespace]" %>
而且它可以像广告宣传的那样工作。+1但是,如果应用程序启动时出现错误,该怎么办?我们在启动时设置了相当多的Autofac和NHibernate日志,如果出现任何错误并抛出错误,ActionFilter将永远不会捕获该错误。仔细的该示例似乎是关于记录操作,而不是记录异常这些答案是否正确?还是一个比另一个更正确?如果是,你能标记一下吗?