我正在创建一个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.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>
...
但是我收到了这个错误:
C:\ inetpub \ example.com \ Views \ Shared \ Error.aspx(5):错误BC30451:未声明名称“MvcApplication”。
我应该在哪里定义我的LogException()函数,以便可以从Global.asax.vb文件和Error.aspx文件访问它?最MVC-ish在哪里?
答案 0 :(得分:6)
您可能想尝试一个名为ELMAH的模块。 Scott Hanselman说“ELMAH是你的ASP.NET错误的Tivo”。我目前正在使用它来记录我的ASP .NET + MVC应用程序中的错误,它就像一个魅力。安装很简单,因为所需要的只是在web.config中添加行。您甚至可以限制谁有权查看错误日志。
http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx
答案 1 :(得分:2)
答案 2 :(得分:1)
实际上,对于我能收集的内容,你只是错过了一个指令:
<%@ Import Namespace="[Your default namespace]" %>
它可以像宣传的一样工作。