2011-08-14 52 views
4

我試圖將NHibernate實現到我的Web App中。我遇到其說一個錯誤:在ASP.NET網站中實現NHibernate時出錯

法在類型 'NHibernate.ByteCode.Castle.ProxyFactoryFactory' 從程序集「NHibernate.ByteCode.Castle 'IsInstrumented',版本= 2.1.2.4000文化=中性,
PublicKeyToken = aa95f207798dfdb4'沒有實現。

有誰知道如何解決這個問題?

+1

我們需要更多的詳情。 – jason

回答

5

確保你有以下的w3wp.exe的複製到輸出文件夾和loaded dll文件(如果您使用IIS):

  • NHibernate.ByteCode.Castle.dll
  • 城堡。 Core.dll
  • NHibernate.dll
  • Iesi.Collections.dll
  • log4net.dll

而且你的NHibernate的配置有這一行:

<property name="proxyfactory.factory_class"> 
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle 
</property> 

作爲一個選項,你可以嘗試升級到NHibernate的最新版本 - 3.2。他們有一個內置的代理生成器,所以它應該更簡單。你將不需要這些額外的dll。如果你使用NHibernate 3.2,只需刪除上面的配置行。

如果由於某些原因您無法升級到3.2,您可能會考慮使用不同的byte code providers。 NHibernate支持其中3個開箱即用。嘗試李林甫或Spring:

  • NHibernate.ByteCode.Castle.ProxyFactoryFactory
  • NHibernate.ByteCode.LinFu.ProxyFactoryFactory
  • NHibernate.ByteCode.Spring.ProxyFactoryFactor
+0

我發現在nhibernate 3.2中有defaultproxyfactory。它是什麼?是林福​​還是城堡?我需要使用Castle,因爲我可能需要Windsor和NserviceBus –

+0

@TJ:使用Castle和NServiceBus不應該干擾NHibernate 3.2的內置字節碼提供程序。 – Dmitry

相關問題