2012-08-25 15 views
0

중간 신뢰를 사용하여 로컬로 작업하는 ASP.NET 4.0에서 작성된 웹 응용 프로그램을 얻으려고합니다. Go Daddy를 웹 호스트로 사용 중이며 공유 호스트에서 중간 신뢰를 사용합니다. 나는 그것을 읽었습니다. nHibernate는 현재 3.3의 박스에서 벗어나 중간 트러스트 사이트에서 작동하지만, 저의 삶은 내 일을 할 수 없습니다.nHibernate 3.3.1 System.Security.Permissions.ReflectionPermission Error

내 Web.config의에
<trust level="Medium" /> 

내 웹 응용 프로그램의 폭탄 다음 오류 및 스택 추적과 아웃 : :

Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 

at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) 
    at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) 
    at System.Security.CodeAccessPermission.Demand() 
    at System.Reflection.Emit.DynamicMethod.PerformSecurityCheck(Type owner, StackCrawlMark& stackMark, Boolean skipVisibility) 
    at System.Reflection.Emit.DynamicMethod..ctor(String name, Type returnType, Type[] parameterTypes, Type owner, Boolean skipVisibility) 
    at NHibernate.Bytecode.Lightweight.ReflectionOptimizer.CreateDynamicMethod(Type returnType, Type[] argumentTypes) 
    at NHibernate.Bytecode.Lightweight.ReflectionOptimizer.GenerateGetPropertyValuesMethod(IGetter[] getters) 
    at NHibernate.Bytecode.Lightweight.ReflectionOptimizer..ctor(Type mappedType, IGetter[] getters, ISetter[] setters) 
    at NHibernate.Bytecode.Lightweight.BytecodeProviderImpl.GetReflectionOptimizer(Type mappedClass, IGetter[] getters, ISetter[] setters) 
    at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetReflectionOptimizer() 
    at NHibernate.Tuple.Entity.PocoEntityTuplizer..ctor(EntityMetamodel entityMetamodel, PersistentClass mappedEntity) 
    at NHibernate.Tuple.Entity.EntityEntityModeToTuplizerMapping..ctor(PersistentClass mappedEntity, EntityMetamodel em) 
    at NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass persistentClass, ISessionFactoryImplementor sessionFactory) 
    at NHibernate.Persister.Entity.AbstractEntityPersister..ctor(PersistentClass persistentClass, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor factory) 
    at NHibernate.Persister.Entity.SingleTableEntityPersister..ctor(PersistentClass persistentClass, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor factory, IMapping mapping) 
    at NHibernate.Persister.PersisterFactory.CreateClassPersister(PersistentClass model, ICacheConcurrencyStrategy cache, ISessionFactoryImplementor factory, IMapping cfg) 
    at NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners) 
    at NHibernate.Cfg.Configuration.BuildSessionFactory() 
    at NHibernate.DataAccess.WebTest.Code.NHibernateHelper.get_SessionFactory() 
    at NHibernate.DataAccess.WebTest.Code.NHibernateHelper.OpenSession() 
    at NHibernate.DataAccess.WebTest._Default.Page_Load(Object sender, EventArgs e) 
    at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) 
    at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) 
    at System.Web.UI.Control.OnLoad(EventArgs e) 
    at System.Web.UI.Control.LoadRecursive() 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

이 내가 '같은 오류가 될 것으로 보인다 단순히 추가함으로써

내가 지금까지 발견 한 수정 중 어느 것도 나를 위해 일하는 것처럼 보이지는 않았다. 나는 심지어 NHibernate.DependencyInjection Nuget 패키지를 시도했지만 동일한 오류가 있지만 Initializer ctor에서 발생하는 다른 스택 추적과 함께 오류가 발생했습니다.

나는이 작업을 수행하기 위해 명백한 것을 놓치고있는 것처럼 느껴진다. 그러나 나는 그것에 손가락을 넣을 수 없다. 누구든지 nHibernate 3.3.1을 중간 신뢰로 실행하는 데 성공 했습니까?

답변

1

중간 트러스트 공급자와 함께 NH 3.3.1을 사용합니다. 그러나 당신을 도울 다른 뭔가가있을 수 있습니다.

PM> Install-Package NHibernate.DependencyInjection 

그것을 얻으려면 그냥 내가 고뇌의 배치를 해제하여이 작업을 얻을 수 있었다

protected void Application_Start() { 
    Initializer.RegisterBytecodeProvider(); 
    ... 
    Rest of configuration code here 
} 
2

을 사용하여 실행 -이 : Ranzlee하여이 package를 설치합니다. 나는 대답을 여기에서 찾았다, http://blog.ondrejsv.com/post/N2CMS-NHibernate-SqlCommandSet-and-medium-trust.aspx. 경고, 아직 이것을 프로덕션으로 마이그레이션하지 않았습니다. 이것은 내 노트북 ​​(YMMV)에 그냥 있습니다.

<property name="adonet.batch_size">0</property> 

NHibernate.DependencyInjection 패키지를 시도했지만 작동하지 않았습니다.

희망이 도움이됩니다.