豚吐露@wiki

PublicKeyToken=89b483f429c47342とか出てDBにつながらない

最終更新:

ohden

- view
管理者のみ編集可

『PublicKeyToken=89b483f429c47342』とか出てDBにつながらない

Oracle Database 11g
Windows 7-64bit Professional


まぁ、自分で作ってない既存のmoduleだったんですけどね...
実行しようかしたらこんなExceptionが...(´・ω・`)
どうやらSystem.IO.FileNotFoundExceptionらしく...FusionLogに以下のようなことが書いてありました。

=== 事前バインド状態情報 ===
ログ: ユーザー = domain\\hoge
ログ: DisplayName = Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342
 (Fully-specified)
ログ: Appbase = file:///C:/wk/pj/git/src/Fuga/
ログ: Initial PrivatePath = C:\\wk\\pj\\hBousai\\hbousai_git\\src\\Fuga\\bin
呼び出しているアセンブリ: PKGModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
===
ログ: このバインドは default の読み込みコンテキストで開始します。
ログ: アプリケーション構成ファイル C:\\wk\\pj\\hBousai\\hbousai_git\\src\\Fuga\\web.config を使用します。
ログ: C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\config\\machine.config からのコンピュータ構成ファイルを使用します。
ログ: ポリシー後の参照: Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342
ログ: 新しい URL file:///C:/Users/hoge/AppData/Local/Temp/Temporary ASP.NET Files/noticeentrance/162b2e90/8f85d3fd/Oracle.DataAccess.DLL をダウンロードしようとしています。
ログ: 新しい URL file:///C:/Users/hoge/AppData/Local/Temp/Temporary ASP.NET Files/noticeentrance/162b2e90/8f85d3fd/Oracle.DataAccess/Oracle.DataAccess.DLL をダウンロードしようとしています。
ログ: 新しい URL file:///C:/wk/pj/git/src/Fuga/bin/Oracle.DataAccess.DLL をダウンロードしようとしています。
ログ: 新しい URL file:///C:/wk/pj/git/src/Fuga/bin/Oracle.DataAccess/Oracle.DataAccess.DLL をダウンロードしようとしています。
ログ: 新しい URL file:///C:/Users/hoge/AppData/Local/Temp/Temporary ASP.NET Files/noticeentrance/162b2e90/8f85d3fd/Oracle.DataAccess.EXE をダウンロードしようとしています。
ログ: 新しい URL file:///C:/Users/hoge/AppData/Local/Temp/Temporary ASP.NET Files/noticeentrance/162b2e90/8f85d3fd/Oracle.DataAccess/Oracle.DataAccess.EXE をダウンロードしようとしています。
ログ: 新しい URL file:///C:/wk/pj/git/src/Fuga/bin/Oracle.DataAccess.EXE をダウンロードしようとしています。
ログ: 新しい URL file:///C:/wk/pj/git/src/Fuga/bin/Oracle.DataAccess/Oracle.DataAccess.EXE をダウンロードしようとしています。

とりあえず、『Oracle.DataAccess.DLL』か『Oracle.DataAccess.EXE』が必要そうだって事が分かったので...Oracle Database突っ込んでみた。

したら、『C:\app\hoge\product\11.2.0\dbhome_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll』が見つかったので、pathを指定してみた。
が、通らない...(-ω-;)
pathちゃうんか?ってことで仕方がないので、『C:/wk/pj/git/src/Fuga/bin/』に配置してみた。

errorの内容が変わった。
起動時にerror起きるようになった...(-ω-;)

どうもこのmodule、web.configでdll読み込むようになっとるらしく、その時点で見つかった『Oracle.DataAccess.DLL』を読み込もうとしたんじゃけど...ダメだったらしい。(´・ω・`)

エラー 1 ファイルまたはアセンブリ 'Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342'、またはその依存関係の 1 つが読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。		

手立てが無くてどうしょうもないんで、環境が動いてるトコから『Oracle.DataAccess.DLL』持ってきて配置してみたら...動いた...(-ω-;)
調べてみたら、『Oracle.DataAccess.DLL』には、x86用とx64用で分かれてるらしく...それが合ってないらしい。

そしてassembly確認したら...こんな感じになってました。

と言う訳で、64bit版と32bit版へのlinkを貼っといた。
わしの環境では、アプリケーションで使ってるのが64bit版で、ASP.NETで使ってんのが32bit版だったみたい。めんどくさいね。(´・ω・`)


そして...32bit版を突っ込むことでExceptionは出んくなったが...ORA-12154が出るようになった...orz


色々試したけど、解決した。

要は、32bitと64bitのODACがどっちも入ってて、versionに差異がある場合に発生する現象らしい。
32bitはVersion 1.1で64bitはVersion 1.2。この時32bit使おうとすると64bitで1.2あるんなら32bitにも1.2あるじゃろ?って使おうとして...見つからんかったら今回のようなerrorが出るって事みたい。(´・ω・`)


ココらへんも参考にしました。
http://d.hatena.ne.jp/atsukanrock/20090519/1242721158


更新日: 2018年02月14日 (水) 11時07分39秒

名前:
コメント:

すべてのコメントを見る
添付ファイル
記事メニュー
目安箱バナー