2009-09-21 317 views
3

今天我試圖運行我的Web應用程序時就開始出現這個煩人的問題。System.TypeLoadException:無法從程序集加載類型

的情況如下:

我有一個Web應用程序項目(WAP從現在起)和4個庫項目(BusinessEntities,BusinessLogic,數據訪問和utils的)。

數據訪問引用BusinessEntities BusinessLogic引用BusinessEntities和數據訪問 的WAP引用BusinessLogic,BusinessEntities和數據訪問

當我運行WAP我得到一個

System.TypeLoadException:未能加載類型「Namespace.DataAccess .ClassDataAccess'來自程序集'DataAccessAssembly',版本= 1.0.3551.29465,Culture = neutral,PublicKeyToken = null'。

這是當BusinessLogic的一個方法嘗試創建一個DataAccess類的實例時。我在WAP的de bin bin文件夾內的DataAccess dll上使用了反射器,它包含我正在調用的類。

我已經嘗試過刪除臨時文件,asp.net,但沒有成功,我使用卡西尼作爲Web服務器(沒有試過IIS還)

感謝。

+0

有關它的任何解決方案? – Kiquenet 2013-06-14 06:53:26

回答

4

很可能您的參考文獻中有一些混合的版本號。

檢查您的項目參考,您的web.config文件和您的.dll版本,以確保您的所有參考是正確的。

+0

+1,這解決了我的問題。謝謝! – Chris 2011-04-08 19:37:48

0

您需要檢查的InnerException的根本原因

+0

InnerException爲null :( – Paleta 2009-09-22 13:57:10

4

您還可以使用附帶了一個名爲fuslogvw.exe (Assembly Binding Log Viewer)的SDK工具。這對於查找程序集綁定錯誤非常有用,並解釋了錯誤發生的原因。

+0

使用此工具!它將爲您節省很多挫折:) – Alex 2009-12-06 23:01:32

+0

感謝您指向一個調試工具。我在Linux上使用Mono時遇到了一個問題,在網絡上查找「fuslogvw.exe」並找到(本頁)[http://mono.1490590.n4.nabble.com/assembly-bind-tracking- td1505796.html],他們說你可以通過設置環境變量'MONO_LOG_LEVEL = info'和'MONO_LOG_MASK = asm'來看到調試消息。 – 2016-06-27 09:35:33

1

剛剛解決了一個類似的問題(TypeLoadException,對於一個dll中的類似乎存在null的InnerException異常)。原因是我們引用客戶端 dll從服務器項目(即Foo.DomainService.dll而不是Foo.DomainService.Web.dll)。

相關問題