2011-05-15 81 views
0

我在Windows Azure的頂部構建了一個REST WCF應用程序。在localhost中,我可以很好地連接和使用NHibernate的SQL Azure,但每當我嘗試將應用程序移動到Windows Azure時,它都無法加載所需的DLL以使NHibernate正常工作。Nhibernate和Windows Azure

我見過論壇說如果NHibernate DLL是用x86 target編譯的,而且自從Windows Azure在x64上運行以後,可能會出現這個問題,我試圖將我的編譯目標修改爲x64(儘管我是運行Windows 7 x86)。

它顯示的問題是

服務器遇到錯誤 處理請求。 消息的異常是「無法加載類型 」NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle' 配置代理工廠類。 可能的原因有: - 未部署的是 NHibernate.Bytecode提供程序集合 。 - 使用typename 初始化 會話工廠部分的'proxyfactory.factory_class'屬性 不是 格式良好。解決方案:確認 您的部署文件夾包含以下程序集中的一個: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll'。有關更多詳細信息,請參閱 服務器日誌。

有沒有人見過這個錯誤?我該如何解決這個問題?

+0

這聽起來像你錯過了在部署一個DLL。這有幫助嗎? http://stackoverflow.com/questions/1913504/nhibernate-unable-to-load-proxy-factory – Stuart 2011-05-15 20:09:44

+0

這是同樣的問題,但我真的不知道如何檢查複製到Azure存儲進行部署的DLL。 – jpabluz 2011-05-15 20:18:12

回答

0

嗯,事實證明,這並沒有任何與天青,運行它相當費力。

爲了使這個工作,我不得不破解msbuild進程,誰是「聰明」足以離開城堡dll。如上所述,這不應該是一個永久性的修復,因爲您需要修改msbuild配置,以便它包含所需的dll。我只是不知道該怎麼做,也許在StackOverflow的天才可以幫助我們。

這是博客文章,幫助我,與你分享以供將來參考:

http://weblogs.asp.net/srkirkland/archive/2009/10.aspx

0

您是否在項目中所有引用程序集的屬性中設置了「copy local」?

+0

是的,所有的nHibernate的dll的複製本地設置爲True。 Microsoft Dll已將複製本地設置爲False。 – jpabluz 2011-05-15 20:16:46

0

因爲它是同樣的問題NHibernate unable to load Proxy Factory,則:

  • 檢查NHibernate.ByteCode.LinFu.dll或NHibernate.ByteCode.Castle.dll之一是通過你的項目中引用
  • 保證「複製本地」是真的對DLL