2016-03-07 80 views
0

我必須工作在已經開發的解決方案,其使用NHibernate(v1.2.1.4000)與SQL Server 2008NHibernate的 - 創建代理實例失敗(上IIS8但開發服務器OK)

的應用程序是使用.NET Framework 2.0由於成員身份驗證和其他東西。

這是工作在Visual Studio中 - 我可以對它進行調試,運行,但未能在IIS(V8.0)部署時

的例外是:

有重複的類型名稱的組件中。
HibernateException:創建代理實例失敗。

而且每當數據庫被提取以獲得某些模型時就會發生。

我已經在這個問題上使用Google,並有一些建議使用nhiberante(v3.3.x)。

但是很多接口和方法參數在v3中有所不同。所以它正在破壞源代碼的實現。

關於計算器上存在此,但沒有運氣的幾個問題尚未

+0

使用VS進行調試時,是使用舊的Cassini dev服務器還是使用IIS Express?如果尚未完成,請切換到IIS Express進行調試。 –

+0

@Frédéric,謝謝。它使用IIS Express。 –

回答

0

也許你有一個併發的麻煩,像單身初始化未能確保其初始化的唯一性,只有在負載發生的事情。

特別檢查您的會話工廠。建立它時放置日誌,檢查它不是多次構建。嘗試從Application_Start觸發您的單例初始化,如果它們尚未從那裏觸發。

避免單例延遲初始化,除非它們真的很重並且不適合大多數應用程序HTTP請求。在這種情況下,確保它們的邏輯是線程安全的,並避免運行併發初始化(類似LazyThreadSafetyModeExecutionAndPublication而不是PublicationOnly:它需要更嚴格的鎖定,但必須通過構建ISessionFactory來完成,如果通過惰性初始化完成的話)。

+0

這是NHibernate的一個bug https://nhibernate.jira.com/browse/NH-3172,建議使用NHibernate 3或更多。 我已經將解決​​方案升級到CLR v4並使用NHibernate 4。但是現在castle(v3.0.0)不工作,因爲castle.facilities不支持v3。 –

+0

Castle是在其版本3之前爲NHibernate配置的常用代理生成器.NHibernate v3和更高版本嵌入了自己的代理生成器,不再需要外部代理生成器。 –

相關問題