私は参照したクラスライブラリからメソッドを呼び出すASP.NET 4.5 Webアプリケーション(IIS 7.5で動作します)を使用しています。 処理されていない例外があるときに、ELMAHをログに追加します。 NuGetでELMAHをインストールしました。それは素晴らしい作品です。 問題は、クラスライブラリからの例外をログに記録せず、Webアプリケーションからの例外のみを記録することです。クラスライブラリを使用したASP.NET WebAppでのELMAHの使用
私は私のクラスライブラリにトライキャッチを追加しようとしたとして手動で例外をログに記録しようとした:
ErrorSignal.FromCurrentContext().Raise(e);
しかし、これは何もしません。
ELMAHをWebアプリケーションとクラスライブラリの両方にインストールして参照する必要がありますか? web.configはクラスライブラリがどのハンドラとモジュールを使用するかを知るのに十分でしょうか?クラスライブラリに別の設定を追加する必要がありますか?
私は、Webアプリケーションとクラスライブラリの両方がpackages.configを持っていることに気づいたが、それは唯一の含まれています。私はこのトピックについてのstackoverflowに多くのページを発見したが、ために働く答えを見つけることができませんでした
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="elmah" version="1.2.2" targetFramework="net45" />
<package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" />
</packages>
私。
一部の人々は
ErrorLog.GetDefault(HttpContext).Log(new Error(errExc));
を使用してお勧めします。しかしのHttpContextは使用できません。私はHttpContextの代わりにnullを使ってみましたが、どちらも役に立ちませんでした。
ELMAHも参照する必要があるクラスライブラリからErrorLog.GetDefault(null).Log(新しいエラー(errExc))を試してください。 – ThomasArdal