2011-11-24 1 views
8

기본 nHibernate Log4net 로깅을 Common.Logging 어셈블리로 바꾸려고합니다. 내의 Web.config에 다음
NHibernate.Logging.CommonLogging.dll에게

v1.2.0.4000을
Common.Logging.dll 2.0 다음 ​​추가 : 'NHibernate.LoggerProvider'의 형식 이니셜 라이저에서 예외가 발생했습니다.

나는 내 프로젝트에 대한 참조를 추가 :

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

내 ulitmate 목표는 엔터프라이즈 라이브러리 5.0과 Log4net 로깅을 교체하는 것입니다,하지만 난 그냥 그것을 순간 한 번에 한 단계를 복용하고 있습니다.

지금 내 응용 프로그램을 실행하면 내가받을 다음과 같은 예외 : 내가 nHibernate 수와 Common.Logging를 사용하여 누락 아무것도

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에의 v3.2.0.4000을 사용하고

나는 해결책을 :(찾을 수 없습니다.

PS합니다. NHibernate.Logging.CommonLogging와 O)

+1

이 질문에 대한 답변이었습니다. 이것은 내가 가지고있는 똑같은 정확한 문제입니다 – Mario

+0

그것은 대답했습니다, 그는 단지 그것을 표시하지 않았습니다. 일회용 계정 중 하나는 방금 한 가지 질문을했습니다. 기본적으로 구성 문자열은 자습서에서 복사되며 오타가 있습니다. ''..., Hibernate.Logging. "'. 그것은'NHibernate.Logging'이어야합니다. –

답변

8

스위치 Hibernate.Logging.CommonLogging :이 서식 잘 작성하지 않은 경우 죄송이 사이트에 내 첫 게시물입니다, 내가 glady 건설적인 비판을 받아 들일 것입니다

+0

우리는 동일한 웹 하우투를 따라 갔고, 오타를 우리 자신의 설정으로 복사하는 것을 끝내 었다고 생각합니다. –

+2

이것은 허용 된 대답이어야합니다. –

2

NuGet에서 NHibernate.Logging 패키지를 설치해보십시오 (또는 NuGet을 사용하지 않는 경우 라이브러리를 참조하십시오). 나를 위해 일했다.

건배.

2

Windows 서버 2008에서 솔루션을 실행 중이고 NHibernate 3.0 이상을 사용하는 경우 .Net 3.5가 설치되어 있고 aspnet_regiis이 .net 프레임 워크 (또는 frameworkx64) 2.0에서 실행되었는지 확인하십시오. 또한 웹 사이트 인 경우 기본 .net 응용 프로그램 풀이 아닌 기본 .net 응용 프로그램 풀에서 실행되고 있는지 확인하십시오.

NHibernate 3.0 이상 .net 3.0 이상이 필요합니다.

0

짧은 버전 프로젝트의 어셈블리 이름이 web.config

롱 버전

이 오래된 질문에 nhibernate-logger 키의 값과 일치하지만 건너 온 경우

확인 내가 같은 실수를했을 때. 내 경우에는 NLogFactory이 위치한 프로젝트의 이름을 변경하고 web.config을 변경했지만 프로젝트의 어셈블리 이름을 변경하는 것을 잊어 버려 문제가 발생했습니다.이다

, 나는, ARR.CodeCDP.Core에서 내 프로젝트의 이름을 변경하려면

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

변경 내 web.config 들어갔다 :

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

을하지만, 프로젝트 속성, "응용 프로그램"으로 이동하는 것을 잊었다 탭을 클릭하고 "어셈블리 이름"을 새 이름으로 변경합니다.