2012-11-29 5 views
0

Visual Studio 2010에서 디버그 모드로 실행하려고하는 nHibernate로 완전히 설정되고 성공적으로 테스트 된 프로젝트가 있습니다. log4net을 설정하기 전에 프로젝트를 실행하면 분명히 잘 실행되지만 참조가 추가됩니다. log4net 어셈블리, 해당 라인은 웹 \의 Global.asax 파일을 INT, 및 멤버를 재정의하는 동안 다음 오류가있는 web.config 파일 결과에서 구성 매개 변수nHibernate Log4Net 로깅 예외

상속 보안 규칙 위반 'log4net.Util.ReadOnlyPropertiesDictionary를 .GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext) '. 대체 메소드의 보안 액세스 가능성은 대체되는 메소드의 보안 액세스 가능성과 일치해야합니다.

라인에

구성 설정 = 새 구성()를 구성().;

public static ISessionFactory SessionFactory; 
    public static ISession OpenSession() 
    { 
     if (SessionFactory == null) //not threadsafe 
     { //SessionFactories are expensive, create only once 
      Configuration configuration = new Configuration().Configure(); 
      configuration.AddAssembly(Assembly.GetCallingAssembly()); 
      SessionFactory = configuration.BuildSessionFactory(); 
     } 
     return SessionFactory.OpenSession(); 
    } 

내가 명시 적으로이 가이드 다음하고 다음 코드 블록

: Configure Log4Net for use with NHibernate 자 NHibernate 프로젝트.

+0

.Net 4를 사용하고 있습니까? 적용 할 수있는 http://stackoverflow.com/questions/3055792/inheritance-security-rules-violated-while-overriding-member-securityruleset-le. – stuartd

+0

.Net 4. 코드 분석을 [Enable Code Analysis] (http://msdn.microsoft.com/en-us/library/e05a02t4 (v = vs. 80) .aspx)하지만 메뉴 모음에서 웹 프로젝트를 선택할 때 "웹 사이트"가 없습니다. 이 설정에 액세스하는 방법을 알고 있습니까? – sammarcow

+0

잘 모르겠습니다. Log4net의 .Net 4 빌드를 사용하고 있습니까? 어떤 버전입니까? – stuartd

답변

0

에 설명 된대로 log4net 소스에 Util.ReadOnlyPropertiesDictionary.GetObjectDataSecurityCritical 특성을 추가해야합니다. 여기에는 .NET 4.0을 대상으로하는 어셈블리가 포함되어 있습니다.