2011-11-24 18 views
8

デフォルトのnHibernate Log4netロギングの代わりにCommon.Loggingアセンブリを使用しようとしています。'NHibernate.LoggerProvider'のタイプイニシャライザが例外をスローしました

私はに私のプロジェクトでの参照を追加しました:
Common.Logging.dll v2.0の
NHibernate.Logging.CommonLogging.dll v1.2.0.4000

をして、私のWeb.configファイルに次を追加しました:

<add key="nhibernate-logger" value="NHibernate.Logging.CommonLogging.CommonLoggingLoggerFactory, Hibernate.Logging.CommonLogging"/> 

私ulitmateの目標は、エンタープライズライブラリ5.0でlog4netのロギングを交換することですが、私はちょうどそれを現時点では一度に一歩を取っています。

私は今、私のアプリを実行すると、私は次の例外を取得:

The type initializer for 'NHibernate.Cfg.Configuration' threw an exception. => 
The type initializer for 'NHibernate.LoggerProvider' threw an exception. => 
The type initializer for 'NHibernate.LoggerProvider' threw an exception. => 
Unable to instantiate: => 
Value cannot be null.\r\nParameter name: type 
at NHibernate.LoggerProvider.LoggerFor(Type type) 
at NHibernate.Cfg.Configuration..cctor() 

は、私はNHibernateはとCommon.Loggingを使用するために欠けているものはありますか?私は、ウェブ上で見つけた指示に従って、試してみたが、それは働いていないと私は解決策を見つけることができません:(

私はNHibernateはのv3.2.0.4000を使用しています。

PS。 NHibernate.Logging.CommonLoggingでO)

+1

この質問に回答してください。これは私が持っている同じ正確な問題です – Mario

+0

それは答えている、彼はそれをマークしていない。使い捨ての口座の1つは、ちょうど1つの質問をしました。基本的には、設定文字列はチュートリアルからコピーされ、タイプミスがあります。 '' ...、Hibernate.Logging。 ''。それは 'NHibernate.Logging'でなければなりません –

答えて

8

スイッチHibernate.Logging.CommonLogging:これは、フォーマットが正しくない場合はとても残念、このサイト上で私の非常に最初の投稿です、私はglady建設的な批判を受け入れます

+0

私たちは同じウェブの使い方をして、自分の設定に自分のタイプミスをコピーしてしまったと思います。 –

+2

これが受け入れられる回答である必要があります。 –

2

NuGetからNHibernate.Loggingパッケージをインストールしてみてください(またはNuGetを使用しない場合はライブラリを参照してください)。私のために働いた。

乾杯。

2

Windows Server 2008でソリューションを実行していて、NHibernate 3.0以降を使用している場合は、.Net 3.5がインストールされており、.netフレームワーク(またはframeworkx64)2.0のためにaspnet_regiisが実行されていることを確認してください。また、Webサイトの場合は、デフォルトのアプリケーションプールではなく、従来の.netアプリケーションプールで実行されていることを確認してください。

NHibernate 3.0+ needs .net 3.0以上が必要です。

0

ショートバージョン

チェック、プロジェクトのアセンブリ名があなたのweb.config

ロングバージョン

nhibernate-loggerキーの値と一致した場合、これは古い質問ですが、私は出会いました私は同じエラーがあったときそれを。私の場合は、NLogFactoryがあるプロジェクトの名前を変更し、web.configにそれを反映させるためにプロジェクトのアセンブリ名を変更するのを忘れたために問題が発生しました。

私は

<add key="nhibernate-logger" value="CDP.Core.DBContext.Framework.NLogFactory, CDP.Core" /> 

を変更するには、私のweb.configに入った、CDP.CoreからARR.Codeに私のプロジェクトの名前を変更し、次のとおりです。

<add key="nhibernate-logger" value="ARR.Core.DBContext.Framework.NLogFactory, ARR.Core" /> 

しかし、プロジェクトのプロパティに行くのを忘れて、「アプリケーション」タブをクリックし、「アセンブリ名」を新しい名前に変更します。

関連する問題