14

Visual Studioで使用している構成に基づいて、アプリ名を変更する必要があります。たとえば、デバッグ構成を使用している場合、Elmah_Errorテーブルの[アプリケーション]フィールドにアプリ名を「App_Debug」と表示します。誰かがこれを経験したことがありますか?またはそれを行う別の方法はありますか?

4

2 に答える 2

54

これは、純粋にマークアップで実行できるようになりました。web.config ファイルのセクションの要素にapplicationName属性を追加するだけです。例:errorLog<elmah>

<errorLog type="Elmah.SqlErrorLog, Elmah" 
    connectionStringName="connectionString" applicationName="myApp"  />

私はこれをテストしましたが、例外をログに記録するときと、 を介してログを表示するときの両方で機能しますElmah.axd

OPの場合、プログラムでも設定できると想像できますが、私はそれをテストしませんでした。私にとっては、ほとんどのシナリオでマークアップ アプローチで十分だと思います。

于 2012-02-17T13:46:58.623 に答える
6

既定では、Elmah は AppPool のアプリケーション GUID を既定のアプリケーション名として使用します。HTTP モジュールを介して作成された Web インターフェイスを見ると、Elmah_Error テーブル内のエラーを識別するためのキーとしてこれが使用されます。

私は今年初めに、会社のためにこのオプションを検討する任務を負っていました。Elmah はHttpRuntime.AppDomainAppIdErrorLog.cs ファイルからアプリケーション名を取得するため、デフォルトでこれを操作する方法が見つかりませんでした。好きなキーで操作できます。ただし、これは AppPool の GUID です。

そうは言っても、ErrorLog.cs ファイルを操作して、Elmah をハンドラー ベースのフレームワークではなく呼び出し可能なフレームワークに変え、ApplicationName を設定できるようにすることができました。私がやったことは、以下のように名前を設定できるプロパティを含めるように ErrorLog.cs を変更することでした:

public virtual string ApplicationName
{
    get 
    {
        if (_applicationName == null) {  _applicationName = HttpRuntime.AppDomainAppId; }
        return _applicationName;
    }
    set { _applicationName = value; }
}

HttpRuntime.AppDomainAppIdおそらく、これを別の方法で調整し、ApplicationNameを代わりに web.config から取得した値に設定する必要があります。全体として、それは可能です。私が行った方法はメソッドを強化したErrorLog.Log(ex)ので、Elmah には Web アプリケーションを超えた呼び出し可能なフレームワークがあります。振り返ってみると、代わりに app/web.config アプローチを使用したかったと思います。

Elmah でアプリケーション名を変更する際に注意すべき点が 1 つあります。/elmah/default.aspx インターフェイスを生成する http ハンドラーは機能しなくなります。私はまだそのようなものに戻る時間を見つけようとしています。ただし、実装時にカスタム インターフェイスの作成を検討する必要がある場合があります。

于 2008-11-25T14:06:06.193 に答える