简体   繁体   English

升级到2.1.2版后,Nhibernate不起作用

[英]Nhibernate does not work after upgrade to version 2.1.2

I recently changes my NHibernate implementation from Version 2.1.0 to 2.1.2. 我最近将我的NHibernate实现从2.1.0更改为2.1.2。 For lazy loading I used the LinFu implementation using : NHibernate.ByteCode.Linfu. 对于延迟加载,我使用了LinFu实现:NHibernate.ByteCode.Linfu。

Since I changed to the newest version I got the following error: 自从我更改为最新版本后,我收到以下错误:

 [SecurityException: That assembly does not allow partially trusted callers.]
  NHibernate.ByteCode.LinFu.ProxyFactory..cctor() +0

When debugging I came to the following error: 调试时出现以下错误:

   at NHibernate.ByteCode.LinFu.ProxyFactory..ctor()
   at NHibernate.ByteCode.LinFu.ProxyFactoryFactory.BuildProxyFactory()
   at NHibernate.Tuple.Entity.PocoEntityTuplizer.BuildProxyFactoryInternal(PersistentClass class, IGetter getter, ISetter setter)
   at NHibernate.Tuple.Entity.PocoEntityTuplizer.BuildProxyFactory(PersistentClass persistentClass, IGetter idGetter, ISetter idSetter)
   at NHibernate.Tuple.Entity.AbstractEntityTuplizer..ctor(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)
   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 MyApplication.SessionManager..ctor() in C:\Projects\MyApps\MyApplication\SessionManager.cs:line 75

Is this because of the usage of NHibernate.ByteCode.LinFu? 这是因为使用了NHibernate.ByteCode.LinFu吗? What can I do about it to make the application work again? 我该怎么做才能使应用程序再次运行?

In cases where you have different version of references ie 2.1.0 and 2.1.2 you can configure .net to redirect calls from the old to the new or vice versa using assembly redirects... 如果您有不同版本的引用,即2.1.0和2.1.2,您可以使用程序集重定向配置.net以将调用从旧调用重定向到新调用或反之亦然...

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Linfu.DynamicProxy"
                                  publicKeyToken="32cd8f1a53a4c744"
                                  culture="neutral" />
                <bindingRedirect oldVersion="1.0.0.0"
                                 newVersion="1.1.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

However I don't think this is the problem as the error is quite different. 但是我不认为这是问题,因为错误是完全不同的。 ie Security Exception. 即安全例外。 "That assembly does not allow partially trusted callers" seems to indicate that whatever process is running doesn't have the necessary context permissions to execute the code in the method "NHibernate.ByteCode.LinFu.ProxyFactory..ctor()". “该程序集不允许部分信任的调用者”似乎表明正在运行的任何进程没有必要的上下文权限来执行方法“NHibernate.ByteCode.LinFu.ProxyFactory..ctor()”中的代码。 Potentially you are running an application using Client Profile or in a "Partially Trusted" web hosted environment. 您可能正在使用客户端配置文件或“部分受信任”的Web托管环境运行应用程序。

Do you have more information about the context you are running this application in? 您是否有关于运行此应用程序的上下文的更多信息?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM