3

ASP.NET MVC アプリケーションを作成しています。2 つの場所で例外を処理する必要があります。

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' が宣言されていません。

Global.asax.vb ファイルと Error.aspx ファイルの両方からアクセスできるようにするには、LogException() 関数をどこで定義する必要がありますか? 最も MVC っぽいのはどこですか?

4

3 に答える 3

6

ELMAHと呼ばれるモジュールを試してみることをお勧めします。Scott Hanselmanは、「ELMAHはASP.NETエラーのTivoです」と述べています。現在、ASP .NET + MVCアプリケーションのエラーをログに記録するために使用していますが、これは魅力のように機能します。必要なのはweb.configに行を追加することだけなので、セットアップは簡単でした。エラーログを表示するためのアクセス権を持つユーザーを制限することもできます。

http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx

于 2010-01-11T16:48:07.723 に答える
2

最も MVC らしい方法は、ActionFilters を使用して例外を処理 (ログ) することです。

たとえば、これをチェックしてください:

ASP.NET MVC アクション フィルターを使用したログ記録

于 2009-05-06T22:35:25.897 に答える
1

実際、私が収集できるものについては、ディレクティブが欠けているだけです:

<%@ Import Namespace="[Your default namespace]" %>

そして、それは宣伝どおりに機能します。

于 2011-01-30T23:10:42.517 に答える