Fluent NHibernate:System.TypeLoadException:覆盖成员

时间:2015-12-01 19:54:42

标签: c# asp.net .net nhibernate fluent-nhibernate

我在ASP.Net项目中使用Fluent NHibernate。在我的机器上一切正常,当我将项目发布到托管服务器时,我遇到了一些问题。

以下是我使用的代码:

try
{
    var db = MsSqlConfiguration.MsSql2008.ConnectionString(_connStr);

    _sessionFactory = Fluently.Configure()
                              .Database(db)
                              .Mappings(c => c.FluentMappings.AddFromAssembly(System.Reflection.Assembly.GetExecutingAssembly()))
                              .ExposeConfiguration(c => c.SetProperty("hbm2dll.keywords", "auto-quote"))
                              .BuildSessionFactory();
}
catch (Exception ex)
{
    _log.Error("Error during session factory initialization. Error message: " + ex.Message);
    _log.Error("Full Error Details: " + ex.ToString());
    return false;
}

当我在托管服务器上运行上述代码时,我收到以下错误:

  

01/12/2015 12:07:35:585 - 错误:会话工厂初始化期间出错。 >错误消息:覆盖成员时违反了继承安全规则:>' FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData(System.Runtime> .Serialization.SerializationInfo,> System.Runtime.Serialization.StreamingContext)' 。 >覆盖方法的安全性可访问性必须与>覆盖方法的安全性可访问性相匹配。

     

01/12/2015 12:07:35:585 - 错误:完整错误详细信息:System.TypeLoadException:>重写成员时违反了继承安全规则:>' FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData( System.Runtime> .Serialization.SerializationInfo,> System.Runtime.Serialization.StreamingContext)'。 >覆盖方法的安全性可访问性必须与>覆盖方法的安全性可访问性相匹配。     在FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()     在CDataAccessLayer.cs中的NIPDBHandler.CDataAccessLayer.Init():第32行

现在我知道方法中的Fluent NHiberate存在一个已知问题" FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData"在.NET 4.0中。基本上,问题是所提到的方法没有用属性" [SecurityCritical]"来装饰。我100%确定所述方法是用所述属性修饰的。我使用FluentNHibernate版本2.0.1.0并且我使用ILSpy来检查方法是否真的装饰好了,事实上,它是用" [SecurityCritical]"属性。

我还尝试将以下行添加到FluentNHibernate的汇编文件中并重新编译所有内容。 隐藏复制代码 [assembly:System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

这一次,我看到的唯一区别是配置需要很长时间才能完成,导致.aspx页面出现ThreadBeingAborted异常。

任何帮助都会非常感激,因为老实说,我不知道自己做错了什么。

提前致谢!

0 个答案:

没有答案