javascript執行階段錯誤:UnhandledError in Silverlight Application作業間發生例外狀況 如需詳細資訊 請檢查InnerException

 

我在建置Silverlight(簡稱S)與WCF 的相關連接專案上,S跑起來後原本錢一個禮拜都沒問題,

突然就出現了這個錯誤訊息

 

好險之前有備份沒問題的WCF,再把之前的WCF放在IIS底下再跑S就沒有問題

 

因此判斷問題在WCF上

 

但是不管切到之前的版本一直重build website都還是初線一樣的問題

 

最後我無意間發現有問題的WCF丟下去IIS後跑起來的Service.svc網頁竟然有錯誤訊息

類似

---------------------------

無法載入檔案或組件 'XXXX專案名稱' 或其相依性的其中之一。 試圖載入格式錯誤的程式。

描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.BadImageFormatException: 無法載入檔案或組件 'Luna.Common' 或其相依性的其中之一。 試圖載入格式錯誤的程式。

組件繫結記錄切換為OFF。

--------------------------------

 

然後孤狗關鍵字一下會發現很多人也遇過這問題有寫出解法,主要就是去iis應用程式集區>進階設定>把啟用32位元設成True 就可以了

例如下面這篇文章

http://jumping-fun.blogspot.tw/2012/07/64bit-iis-32bit.html

http://huan-lin.blogspot.com/2011/03/aspnet-windows-x64.html

或是把你的dll全都確定換成64位元應該就也沒問題了

 

這邊提供另個檢查方式,

也可以檢查你的visual studio 所有專案有沒有都用64位元編譯

visual studio 有三種編譯的方式

  • On a 32-bit machine:

  • Any CPU: runs as a 32-bit process, can load Any CPU and x86 assemblies, will get BadImageFormatException if it tries to load an x64 assembly.

  • x86: same as Any CPU.

 

On a 64-bit machine:

Any CPU: runs as a 64-bit process, can load Any CPU and x64 assemblies, will get BadImageFormatException if it tries to load an x86 assembly.

x86: runs as a 32-bit process, can load Any CPU and x86 assemblies, will get BadImageFormatException if it tries to load an x64 assembly.

x64: same as Any CPU.

 

詳見這幾個參考網址

http://stackoverflow.com/questions/5229768/c-sharp-compiling-for-32-64-bit-or-for-any-cpu

http://stackoverflow.com/questions/516730/what-does-the-visual-studio-any-cpu-target-mean

 

簡單來講你電腦是64bit,在visual studio 設成AnyCPU就是編譯成64bit

 

了解之後,如果要對單一專案設,可以在Solution Explorer的你要的專案名稱上   右鍵>Properties>然後在屬性視窗左測選單選Build 然後在右邊的

我不確定是不是Configuration 和Platform都要調成AnyCPU,應該兩個都調比較保險

http://stackoverflow.com/questions/10442964/visual-studio-2010-how-to-set-build-platform-to-activex86

 

有另一個滿方便的方式,

先放參考文章

https://msdn.microsoft.com/en-us/library/ms165408.aspx?f=255&MSPPError=-2147217396

方式是,在visual studio 最上方的menu的Build>Configuration Manager 

http://i.imgur.com/iryaB9u.png

 

undefined

可以一次調整所有專案的Configuraiton,相當方便

全部調成Any CPU 再全部專案重Clean再重Build然後Publish專案應該就可以過了

 

 

 

arrow
arrow
    全站熱搜

    olivermode 發表在 痞客邦 留言(0) 人氣()