2012-07-30 2 views
2

내가 가지고있는 것처럼 보이는 객체를 포함하는 API 다음자 NHibernate는 NUnit를하고 콘솔에서가 아니라 IIS [발생 PropertyAccessException]에서 작동

public class NOrgUnitMap : ClassMap<NOrgUnit> 
{ 
    public NOrgUnitMap() 
    { 
     Id(x => x.Id); 

     Map(x => x.Name); 

     References(x => x.Parent).Nullable(); 
     HasMany(x => x.children).AsSet(); 
    } 
} 
:

public class NOrgUnit { 
    public virtual NOrgUnit Parent { get; set;} 
    public virtual ISet<NOrgUnit> children { get; set; } // an Iesi 1.0.1 ISet 
    public virtual Int64 Id { get; protected set; } 
    public virtual string Name { get; set; } 

    // etc. 
} 

개체를 다음 맵이

API를 빌드하고 콘솔 응용 프로그램에서 참조하면 모든 것이 완벽하게 작동합니다. 이것은 지금 며칠 동안 나를 유세 된

Org Service encountered unexpected exception [NHibernate.PropertyAccessException: Invalid Cast (check your mapping for property type mismatches); setter of TI.Organization.Core.Impl.DAL.Persistence.Entities.Hierarchy.NOrgUnit ---> System.InvalidCastException: Unable to cast object of type 'TI.Security.Core.Impl.Management.Provisioning.DAL.PersistentGenericSet`1[TI.Organization.Core.Impl.DAL.Persistence.Entities.Hierarchy.NOrgUnit]' to type 'Iesi.Collections.Generic.ISet`1[TI.Organization.Core.Impl.DAL.Persistence.Entities.Hierarchy.NOrgUnit]'. 
    at (Object , Object[] , SetterCallback) 
    at NHibernate.Bytecode.Lightweight.AccessOptimizer.SetPropertyValues(Object target, Object[] values) 
    at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer(Object entity, Object[] values) 
    --- End of inner exception stack trace --- 
    at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer(Object entity, Object[] values) 
    at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValues(Object entity, Object[] values) 
    at NHibernate.Persister.Entity.AbstractEntityPersister.SetPropertyValues(Object obj, Object[] values, EntityMode entityMode) 
    at NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object entity, Boolean readOnly, ISessionImplementor session, PreLoadEvent preLoadEvent, PostLoadEvent postLoadEvent) 
    at NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList hydratedObjects, Object resultSetId, ISessionImplementor session, Boolean readOnly) 
    at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) 

:

내가 asp.net 컨텍스트 (특히 sitecore 프로젝트)에서 같은 .DLL을 참조는, 나는 NHibernate에 예외가 발생합니다. 왜 응용 프로그램이 콘솔이 아닌 IIS에서 작동합니까?

+0

Nhibernate를 콘솔과 IIS에서 어떻게 구성합니까? –

+0

"IIS"는 꽤 광범위한 정의입니다. VS에 내장 된 IIS 서버 또는 "실제"IIS를 의미합니까, 그렇다면 버전이 무엇입니까? – Svend

+0

IIS 7.5에서 실행 중입니다. 다르게 구성하지는 않습니다. –

답변

3

TI.Security.Core.Impl.Management.Provisioning.DAL.PersistentGenericSet<T>은 이상한 클래스입니다. 이 사용자 정의가 개발 되었습니까? 그렇다면 Iesi.Collections.Generic.ISet<T>을 구현하지 않았을 가능성이 큽니다. 만약 구현한다면 여러 Iesi 어셈블리가로드되는 문제가 될 수 있습니다.

나는 sitecore에 대해 들어 본 적이 없기 때문에 백그라운드에서 이상한 일을하고있을 것입니다.

+0

Nhibernate도 사용하는 다른 어셈블리의 코드입니다. 나는 오류 메시지에서 당신이 무엇인가에 있을지도 모른다는 것을 알아 채지 못했다. 나는 다시 당신에게 돌아갈 것이다. –

관련 문제