NHibernate 2.1.2 中等信任度

Posted

技术标签:

【中文标题】NHibernate 2.1.2 中等信任度【英文标题】:NHibernate 2.1.2 in medium trust 【发布时间】:2011-02-01 02:56:40 【问题描述】:

我正在尝试将 nhibernate 2.1.2 配置为以中等信任运行,但没有任何运气。我已尝试遵循建议以中等信任和pre-generating the proxies 运行。

然后我尝试删除所有对延迟加载的引用,在所有类和包上设置 default-lazy="false"。但是,这引发了一个异常,要求我配置 proxyfactory.factory_class

这些方法都不起作用,因为它们一直抛出通用安全异常或抛出库不允许 AllowPartiallyTrustedCallers 的简单问题。

如果我想以中等信任度运行,我是否使用了错误的 NHibernate 版本?

我应该使用一组特定的二进制文件或源代码吗?

更新:

我使用 carl 提到的castle project mailing list 中提到的步骤设法让它工作。 除此之外,我必须禁用城堡和休眠库的调试信息的生成。我写了一份我所采取的步骤的快速指南,可以在 here

找到

【问题讨论】:

【参考方案1】:

我也在寻找解决这个问题的方法。我遇到的一个建议的解决方案here 是获取城堡核心、城堡动态代理和 Nhibernate 并重新编译它们(使用 [assembly: AllowPartiallyTrustedCallers] 相互引用新的引用。有谁知道这是否是要走的路(我自己没时间尝试)?

【讨论】:

我也发现了这一点,并且正在研究它是否有效,如果它确实更新了结果。 @John,很好,看看这是否是答案会很有趣。 这是答案,但是需要做一些额外的事情才能让它正常工作,比如告诉项目不要创建 pdb 文件。正要写一个我所采取的所有步骤的指南,只需要修复一些客户首先发现的错误。 我做了同样的事情:下载了 Castle、NHibernate 和 Fluent NHibernate,自己编译了它们,到目前为止它似乎工作正常。【参考方案2】:

NHibernate 需要访问您的域模型,因此您的域模型程序集必须允许访问部分受信任的调用者。

[assembly:AllowPartiallyTrustedCallers] 添加到您的 AssemblyInfo 文件中。

【讨论】:

以上是关于NHibernate 2.1.2 中等信任度的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate 2 + Fluent Nhibernate 中等信任

让 NHibernate 以中等信任度处理共享主机

在共享主机上使用 Castle Windsor 和 NHibernate 设施

反射会带来啥风险? (中等信任度)

通过代码进行 Nhibernate 一对一映射

如何自动化测试中等信任代码