2011-11-01 52 views
0

當我的本地測試應用程序部署到共享虛擬主機(godaddy)時,我有一個問題'程序集不允許部分信任呼叫者'。流利的NHibernate - 城堡 - godaddy - 中等信任

我已閱讀各種帖子和解決方案,並且需要對我的應用程序進行最少更改的方法似乎是here

是否有任何預編譯的DLL現在可用,我可以使用而無需重建nhibernate,因爲我沒有訪問svn或完全知道如何進行?

回答

0

我假設你使用NH 3.2,但如果你使用Fluent NH,那麼我不能確定。

有一個package on NUGET已創建,以滿足中等信任環境。 還有一個blog post描述如何使用這個軟件包。

基本上做一個軟件包安裝: -

PM>安裝,包裝NHibernate.DependencyInjection

然後使用下面的代碼: -

protected void Application_Start() { 
    Initializer.RegisterBytecodeProvider(); 
    ... 
    Rest of configuration code here 
} 

你不需要重新編譯任何東西。

+0

沒有幫助: [拋出:SecurityException:請求類型 'System.Security.Permissions.ReflectionPermission,mscorlib程序,版本= 4.0.0.0,文化=中性公鑰= b77a5c561934e089' 失敗的權限] NHibernate的。 DependencyInjection.BytecodeProvider..ctor()+40 NHibernate.DependencyInjection.Initializer.RegisterBytecodeProvider()+40 .... Application_Start()in Global.asax.cs:59 –

0

我有同樣的問題,並能夠解決它使用NHibernate.DependencyInjection。

這些是我所採取的步驟:安裝所述NuGet package

1);

2)實現IEntityInjector接口:

public class EntityInjector : IEntityInjector 
{ 
    public object[] GetConstructorParameters(System.Type type) 
    { 
     //return null if your objects have parameterless constructors 
     return null; 
    } 
} 

3)在Global.asax的Application_Start,我註冊進樣器:

protected void Application_Start() 
{ 
    Initializer.RegisterBytecodeProvider(new EntityInjector()); 

    ... 
} 

我希望這有助於。