遇到的問題:
1.x86無法調用x64
2.調用ibatis.net的providers.config無法通過節點反射查找Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342 dll
最近重裝系統,直接使用vs2017,然后oracle客戶端是x64位,以前總是裝32位,然后正常使用,但是初次想直接使用64位,看其是否能夠正常使用,然后遇到以上兩個問題。
解決方法:
1.調整類庫和web平台均為64位
2.調整IIS Express 為64位(工具 -> 選項 ->項目和解決方案 -> Web 項目 ,勾選“對網站和項目使用IIS Express 的 64 位版”)
3.因為是通過providers.config中的配置節點調用,故事采用系統反射的原理,無法找到dll,開始不知道原因,后再查看“飛蛾撲火”的博客才才知道,非常感謝。原博客地址:http://www.cnblogs.com/h20064528/archive/2012/12/27/2835845.html
其博客中寫到:odp.net安裝后,默認會在GAC中部署程序集GAC,如果你安裝的是x86版本,GAC中的就是x86;如果你安裝的x64版本,GAC中的就是AMD64版本。 於是查看GAC中是否有Oracle.DataAccess。發現沒有,於是添加便解決問題。
查看GAC命令:在vs.net命名行窗口下,輸入gacutil.exe /l Oracle.DataAccess
執行命令:
gacutil /i D:\app\administrator\product\11.2.0\dbhome_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll
(注意:其中administrator根據自己文件夾名稱修改)
通過解決此次問題后,對於后續dll無法調用,找到不程序集,或者x86,x64平台的問題有了相應的解決思路。記一筆,也感謝網絡上的大神們。