2011-04-08 63 views
1

的.NET的DLL依賴我升級了一個網站,通過這個錯誤被greated:同一文件

=== Pre-bind state information === 
LOG: User = NT AUTHORITY\NETWORK SERVICE 
LOG: DisplayName = <assembly>, Version=2.0.42.64, Culture=neutral, PublicKeyToken=c445f6f924945bd1 
(Fully-specified) 
LOG: Appbase = file:///E:/Web/ 
LOG: Initial PrivatePath = E:\Web\bin 
Calling assembly : <assembly>, Version=2.0.42.67, Culture=neutral, PublicKeyToken=c445f6f924945bd1. 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: E:\Web\web.config 
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet.config 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config. 
LOG: Post-policy reference: <assembly>, Version=2.0.42.64, Culture=neutral, PublicKeyToken=c445f6f924945bd1 
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/5ee48cb7/31fcfc81/<assembly>.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/5ee48cb7/31fcfc81/<assembly>/<assembly>.DLL. 
LOG: Attempting download of new URL file:///E:/Web/bin/<assembly>.DLL. 
WRN: Comparing the assembly name resulted in the mismatch: Revision Number 
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated. 

<assembly>是彙編名稱。

如果我讀這正確彙編(0.67)試圖加載本身,而是以前的(0.64),並不會失敗,因爲顯然是一個文件不能有2個版本......

什麼會導致這個問題? 它是我的配置還是程序集的編譯錯誤?

+0

它只是找到一箇舊版本的DLL。 – 2011-04-08 21:27:27

+0

當我添加.64時要求.67,當我添加.67時它要求.64。 – wazz3r 2011-04-08 21:33:57

+1

嗯,可能是因爲你有一個項目使用.64修訂參考編譯,而另一個使用.67修訂編譯。其中之一將會失敗。 – 2011-04-08 21:37:01

回答

1

我已經找到了錯誤信息的原因,並將其發佈到此處,以便它可以幫助其他人。

有兩個組件與循環依賴,其中一人沒有嚴格的修訂版:

a1(.67) -> a2(.11) -> a1(.64) 

a1a2是集名稱,並在括號中的數字是修訂。

所以真正發生的是,第一個程序集正在加載一箇舊程序集,而該程序集又嘗試加載程序集舊版本。然後錯誤信息會告訴你,a1(.67)試圖加載a1(.64),並跳過整個裝載組件鏈。

爲了幫助調試這個a1應該嚴格對應該加載的a2的修訂版本。然後錯誤信息會告訴你,a2是舊的。

+0

你如何設置嚴格的修訂檢查,我想我有一個非常類似的問題 – user1336827 2016-03-16 20:36:13

0

我一次或兩次看到這個的時候我已經在高速緩存或會話對象,我已經建立了組件的新版本,只是複製過來的原而應用程序仍在運行。該修復程序是重新啓動ASP.NET應用程序,並刪除臨時ASP.NET文件。

+0

我刪除了臨時文件,並重新啓動整個服務器,仍然是相同的錯誤 – wazz3r 2011-04-08 21:38:29