【问题标题】:Castle ActiveRecord - Enable Lazy Loading in Medium TrustCastle ActiveRecord - 在中等信任下启用延迟加载
【发布时间】:2023-03-18 21:17:01
【问题描述】:

我有一个 MVC3 应用程序在中等信任服务器上运行,它使用 Castle ActiveRecord,但如果我启用延迟加载,则会向我显示黄色屏幕安全异常。如果我禁用延迟加载,一切正常。

有一种方法可以在具有 Castle.Core 版本 3 和 nHibernate 3.1.0.4000 的中等信任服务器中使用延迟加载吗?

对不起,我的英语不好,谢谢。

更新:

在我在 Google 上的搜索中,我发现了以下选项:

预生成延迟加载代理

http://nhforge.org/wikis/howtonh/pre-generate-lazy-loading-proxies.aspx

我试过了,但看起来这不适用于 Caste.Core 3 和 nHibernate 3.1。我错了吗?

看起来这个选项很长一段时间都没有收到更新,这很糟糕。

中等信任度下的新冒险

http://blogs.taiga.nl/martijn/2009/06/24/new-adventures-under-medium-trust/

在 Castle DynamicProxy 主题中,我发现:

“解决方案很简单:DynamicProxy 调用 AssemblyBuilder.DefineDynamicModule 并使用生成调试符号的重载。将其更改为不再生成调试符号使其在中等信任下工作!”

我开源了Castle.Core,在ModuleScope.cs(Castle.Core\DynamicProxy)中找到了AssemblyBuilder.DefineDynamicModule,并调用它已经设置的false来生成调试符号。

【问题讨论】:

    标签: nhibernate activerecord castle


    【解决方案1】:

    当我遇到类似问题时,我不得不下载城堡源并设置AllowPartiallyTrustedCallers,然后重新编译。

    希望对你有帮助。

    【讨论】:

    • 嗨,托马斯!我这样做了,但我认为这与延迟加载无关。我唯一的问题是启用 Lazy 并且不要在 Medium Trust 中运行 Castle(这我已经做了你所做的)。感谢您的帮助。
    • 如果我理解延迟加载 Castle.Core 正在为代理生成发出 IL 代码。这就是为什么在中等信任中它不起作用。但也许其他人比我更了解如何克服这个限制。我很想知道
    • Thomas,我在我的问题中提出了两个选项,以启用我在 Google 中找到的中等信任的延迟加载。您如何看待这些选项?
    猜你喜欢
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多