ODP.netのWin2008R2x64へのインストールについて(ODAC112021)

ODAC112021(Oracle Data Provider for .NET 11.2.0.2.0)は.NET Framework4.0に対応した。
ので、早速使おうと思って

  • まず、Win2008R2(x64)へ .NET Framework4.0のインストールを行う。

http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992

  • 次にOracle社のリンクから、

「ODAC 11.2.0.2.1 with Oracle Developer Tools for Visual Studio
を落としてWin2008R2(x64)へとインストールした。(当然VisualStudioモジュールなしで)
この時点で通常のWinアプリはOracle Data Provider for .NETが使えるようになった。

で、ASP.netを動かしたところ動かない。これは32bit版のアセンブリは入っているが、64bit版アセンブリが入ってないということで動かないようだ。

  • 再度Oracle社のリンクから、

「ODAC112021Xcopy_x64.zip」を落として解凍、install.batでインストール。
(例えば、install.bat all d:\oracle myhome とか)

で、ASP.netのほうも、必要ならばインストールフォルダ中のODP.net/bin/2.xのOracle.DataAccess.dllを参照してコンパイルする。(2.112.2.0)(.net2.xのアプリの場合)
(Oracle.DataAccess.dllを開発環境にコピーして参照すればオッケー)

(ASP.netのアプリケーションプールはV2.0とV4.0ができてるので、各バージョン用のdllを参照する)

32bit版Oracleのモジュール
(2用)2.112.2.0 更新日時2010/11/19 1,097,728byte
(4用)4.112.2.0 更新日時2010/11/19 1,101,824byte

64bit版Oracleのモジュール
(2用)2.112.2.0 更新日時2010/11/22 1,093,632byte
(4用)4.112.2.0 更新日時2010/11/22 1,097,728byte

特に32bitと64bitはバージョン番号が同じで区別できないので、更新日時かバイト数で判断する(両方使っていると、どっちのか分からなくなる...)

【追記】
.net4.0インストール後、ASP.net でアプリケーションプールを見ると全部パイプラインがクラッシックモードになってるっぽい。。。
で、.net4.0の場合、統合モードでないと「404.2 - Not Found」エラーとなるので注意!