Visual Studio 2015 連接Oracle 出現錯誤訊息處理方法

oracle_error

由於使用Visual Studio Community 2015 連接Oracle 資料庫,載入參考 Oracle.DataAccess.dll 編寫程式出現如圖的錯誤。

利用關鍵字找到的處理方案都是IIS的設定應用程式集區預設值,啟用32位元應用程式改為True,發現還是無法處理。

我仔細在想想,新版的開發工具不是都是用IIS Express嗎?

就再度將關鍵字縮小,找到此篇的解說才是正解。

1. 至開發工具中,按下CTRL+Q 輸入關鍵字IIS

oracle_error2

2. 勾選畫面中的選項64位元,打包收工。

oracle_error3



底下是錯誤訊息原稿,保留以備後續之用。

'/' 應用程式中發生伺服器錯誤。

無法載入檔案或組件 'Oracle.DataAccess' 或其相依性的其中之一。 試圖載入格式錯誤的程式。

描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外狀況詳細資訊: System.BadImageFormatException: 無法載入檔案或組件 'Oracle.DataAccess' 或其相依性的其中之一。 試圖載入格式錯誤的程式。
原始程式錯誤:

在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

組件載入追蹤: 下列資訊在確定為何無法載入組件 'Oracle.DataAccess' 時是有幫助的。

=== 繫結前狀態資訊 ===
記錄: DisplayName = Oracle.DataAccess
 (Partial)
警告: 提供了組件的部分繫結資訊:
警告: 組件名稱: Oracle.DataAccess | 網域 ID: 2
警告: 如果只提供部分的組件顯示名稱,就會發生部分繫結。 
警告: 這可能會使繫結器載入不正確的組件。
警告: 建議為組件提供完全指定的文字識別,
警告: 該識別是由簡單名稱、版本、文化特性和公開金鑰語彙基元組成。
警告: 如需詳細資訊和這個問題的一般解決方法,請參閱白皮書 http://go.microsoft.com/fwlink/?LinkId=109270。
記錄: Appbase = file:///d:/users/nickliao/documents/visual studio 2015/Projects/WebApplication3/WebApplication3/
記錄: 初始 PrivatePath = d:\users\nickliao\documents\visual studio 2015\Projects\WebApplication3\WebApplication3\bin
正在呼叫組件 : (Unknown)。
===
記錄: 此繫結在 default 載入內容中開始。
記錄: 正在使用應用程式組態檔: d:\users\nickliao\documents\visual studio 2015\Projects\WebApplication3\WebApplication3\web.config
記錄: 使用主機組態檔: D:\Users\nickliao\Documents\IISExpress\config\aspnet.config
記錄: 從 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 使用電腦組態檔。
記錄: 目前不會套用原則至參考 (私用、自訂、部分或以位置為主的組件繫結)。
記錄: 正在嘗試從新的 URL file:///D:/Users/nickliao/AppData/Local/Temp/Temporary ASP.NET Files/root/6b13d03b/8fe9afcf/Oracle.DataAccess.DLL 下載。
記錄: 正在嘗試從新的 URL file:///D:/Users/nickliao/AppData/Local/Temp/Temporary ASP.NET Files/root/6b13d03b/8fe9afcf/Oracle.DataAccess/Oracle.DataAccess.DLL 下載。
記錄: 正在嘗試從新的 URL file:///d:/users/nickliao/documents/visual studio 2015/Projects/WebApplication3/WebApplication3/bin/Oracle.DataAccess.DLL 下載。
錯誤: 無法完成組件的安裝 (hr = 0x8007000b)。已終止探查。

堆疊追蹤:

[BadImageFormatException: 無法載入檔案或組件 'Oracle.DataAccess' 或其相依性的其中之一。 試圖載入格式錯誤的程式。]
   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +36
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +21
   System.Reflection.Assembly.Load(String assemblyString) +28
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +38

[ConfigurationErrorsException: 無法載入檔案或組件 'Oracle.DataAccess' 或其相依性的其中之一。 試圖載入格式錯誤的程式。]
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +738
   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +217
   System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130
   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +170
   System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +92
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +290
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +157
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +531

[HttpException (0x80004005): 無法載入檔案或組件 'Oracle.DataAccess' 或其相依性的其中之一。 試圖載入格式錯誤的程式。]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9947444
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +261

版本資訊: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.6.1055.0

留言

這個網誌中的熱門文章

資訊部門KPI範例

《電腦小技巧》如何將電腦中已安裝的軟體列出清單並儲存為文字檔 From就是教不落