首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.Security.Permissions.ReflectionPermission错误nHibernate 3.3.1

System.Security.Permissions.ReflectionPermission错误nHibernate 3.3.1
EN

Stack Overflow用户
提问于 2012-08-25 08:52:24
回答 2查看 500关注 0票数 0

我正在尝试让我的ASP.NET 4.0编写的web应用程序在本地使用中等信任。我使用Go Daddy作为web主机,而他们在共享主机上使用中等信任。我读到过nHibernate现在可以在3.3版本中开箱即用地使用Medium Trust站点,但我永远不能让我的站点工作。

只需添加以下内容:

代码语言:javascript
复制
<trust level="Medium" />

对于我的web.config,我的web应用程序会出现以下错误和堆栈跟踪:

代码语言:javascript
复制
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包,但错误输出时出现了相同的错误,但堆栈跟踪不同,这发生在初始化器ctor中。

我觉得我遗漏了一些明显的东西来完成这项工作,但我不能确定它。有没有人在中等信任下运行过nHibernate 3.3.1?

EN

回答 2

Stack Overflow用户

发布于 2012-10-03 03:59:35

我可以通过关闭ado批处理来让它工作。我在这里找到了答案http://blog.ondrejsv.com/post/N2CMS-NHibernate-SqlCommandSet-and-medium-trust.aspx警告,我还没有将其迁移到生产环境中;这只是在我的笔记本电脑(YMMV)上。

代码语言:javascript
复制
<property name="adonet.batch_size">0</property>

我尝试过NHibernate.DependencyInjection包,但它不起作用。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2012-08-26 01:30:23

我与中等信任提供商一起使用开箱即用的NH3.3.1。然而,也许还有其他东西可以帮助你。由兰兹利安装此package:-

代码语言:javascript
复制
PM> Install-Package NHibernate.DependencyInjection

要启动并运行它,只需使用

代码语言:javascript
复制
protected void Application_Start() {
  Initializer.RegisterBytecodeProvider();
  ...
  Rest of configuration code here
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12118315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档