2011-11-24 16 views
8

Próbuję użyć zespołu Common.Logging do zastąpienia domyślnego rejestrowania logHnet nHibernate.Inicjator typów dla "NHibernate.LoggerProvider" odrzucił wyjątek

dodałem odniesienie w moim projekcie do:
Common.Logging.dll v2.0
NHibernate.Logging.CommonLogging.dll v1.2.0.4000

a następnie dodaje następujące do mojego Web.config :

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

Moja ulitmate celem jest zastąpienie rejestrowanie log4net z Enterprise Library 5.0, ale ja po prostu biorąc jeden krok na raz w tej chwili.

Kiedy uruchamiam moją aplikację teraz otrzymuję następujący wyjątek:

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() 

Czy jest coś, co mi brakuje do korzystania z Common.Logging z NHibernate? Próbowałem postępując zgodnie z instrukcjami znalazłem w internecie, ale to nie działa i nie mogę znaleźć rozwiązanie :(

Używam NHibernate v3.2.0.4000.

PS. to jest mój bardzo pierwszy post na tej stronie więc przepraszam, jeśli formatowanie nie jest w porządku, będę glady przyjąć konstruktywną krytykę: o)

+1

Chciałbym otrzymać odpowiedź na to pytanie. To jest ten sam dokładny problem, który mam – Mario

+0

To odpowiada, tylko że go nie zaznaczył. Jedno z kont wyrzuconych, tylko po to, by zadać jedno pytanie. Zasadniczo ciąg konfiguracyjny jest kopiowany z samouczka i ma literówkę. '" ..., Hibernate.Logging. "'. Powinien to być 'NHibernate.Logging' –

Odpowiedz

8

przełącznik Hibernate.Logging.CommonLogging z NHibernate.Logging.CommonLogging

+0

Myślę, że postępowaliśmy zgodnie z tym samym web-how, a skończyliśmy kopiowanie jego literówki do naszej własnej konfiguracji. –

+2

To powinna być zaakceptowana odpowiedź. –

2

spróbuj zainstalować pakiet NHibernate.Logging z NuGet (lub odwołując się do biblioteki, jeśli nie używasz NuGet). Pracował dla mnie.

Pozdrawiam.

2

Jeśli używasz rozwiązania na Windows Server 2008 i używasz NHibernate 3.0+, upewnij się, że masz zainstalowaną .Net 3.5 i że aspnet_regiis została wykonana dla .net framework (lub frameworkx64) 2.0. Jeśli jest to strona internetowa, upewnij się, że działa na klasycznej puli aplikacji .NET, a nie w domyślnej puli aplikacji.

NHibernate 3.0+ potrzebuje .net 3.0 i wyżej.

0

Short Version

Sprawdź, czy nazwa Zgromadzenie Twojego projektu jest zgodna z wartością w kluczu nhibernate-logger w swoim web.config

wersja długa

To stara sprawa, ale natknąłem kiedy miałem ten sam błąd. W moim przypadku problem został spowodowany, ponieważ zmieniłem nazwę projektu, w którym znajdował się NLogFactory i zmieniono web.config, aby to odzwierciedlić, ale zapomniałem zmienić nazwę zespołu projektu.

To znaczy, przemianowany mój projekt z CDP.Core do ARR.Code, udał się do mojego web.config zmienić

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

Do:

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

Ale zapomniałem pójść do właściwości projektu "Aplikacja" i zmień "Nazwę zestawu" na nową nazwę.

Powiązane problemy