2012-08-25 28 views
0

我想讓我的web應用程序寫在ASP.NET 4.0本地使用中等信任。我使用Go Daddy作爲虛擬主機,他們在共享主機上使用中等信任。我已經讀過,nHibernate現在可以在3.3中使用中等信任網站,但是我不能爲我的生活得到我的工作。nHibernate 3.3.1 System.Security.Permissions.ReflectionPermission錯誤

通過簡單地添加:

<trust level="Medium" /> 

到我的web.config我的web應用程序的炸彈了,下面的錯誤和堆棧跟蹤:

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.DependencyInjectionNuget包,但是出現了與初始化器相同的錯誤,但出現了不同的堆棧跟蹤。

我覺得我錯過了明顯的東西來獲得這項工作,但我不能把它放在手指上。有沒有人在中級信任下運行nHibernate 3.3.1?

回答

1

我使用NH 3.3.1與我的中等信託提供商開箱即用。然而,可能有其他的東西可以幫助你。通過Ranzlee安裝此package: -

PM> Install-Package NHibernate.DependencyInjection 

爲了得到它運行起來只使用

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