2012-02-23 61 views
0

我有一個在Medium Trust Server中運行的使用Castle ActiveRecord的MVC3應用程序,但是如果啓用Lazy Loading,則會顯示一個黃色的安全異常。如果我禁用延遲加載,則一切正常。Castle ActiveRecord - 在Medium Trust中啓用延遲加載

有一種方法可以在Castle.Core版本3和nHibernate 3.1.0.4000的中型信任服務器中使用延遲加載?

對不起,我的英語和謝謝。

更新:

在我的谷歌搜索,我發現這個選項:

預先生成延遲加載代理

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/

在城堡DynamicProxy話題,我發現:

「的解決方案是一個簡單的:DynamicProxy調用AssemblyBuilder.DefineDynamicModule和使用的重載生成調試符號。將其更改爲不再生成調試符號使其在中等信任下工作!「

我開發了Castle.Core,我在ModuleScope.cs(Castle.Core \ DynamicProxy)中發現了AssemblyBuilder.DefineDynamicModule,並且在調用它的已經設置的false來生成調試符號。

回答

0

當我有類似的問題,我不得不下載城堡來源並設置AllowPartiallyTrustedCallers,然後重新編譯。

我希望它有幫助。

+0

嗨托馬斯!我這樣做了,但我認爲這與懶惰加載沒有關係。我唯一的問題是啓用懶惰,不要在中等信任中運行Castle(我已經做了你所做的)。謝謝您的幫助。 – user1229300 2012-02-24 12:06:02

+0

如果我理解Lazy Loading Castle.Core是代理生成的IL代碼。這就是爲什麼在中等信任下它不起作用。但也許別人知道如何克服這個限制。我有興趣聽說 – 2012-02-24 12:14:21

+0

托馬斯,我在我的問題中提出了兩個選項來啓用我在Google中找到的中等信任中的延遲加載。你對這些選擇有什麼看法? – user1229300 2012-03-02 15:01:48