- PR -

Windows2003Server(64bit)でのASP.NET oracleエラー

1
投稿者投稿内容
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2009-01-15 09:09
こんにちは。
以下の環境で.NETを実行する際に、OracleのTNSエラーが発生してしまい、
困っています、どなたか宜しくお願い板います。

【環境】
WebServer:Windows2003Server(64bit)
DBServer :Windows2003Server(64bit)
DataBase :Oracle10g(64bit)、Client10g(64bit)、ODP.NET(64bit)

【現象】
WebServerにOracleClientとODP.NETをインストールしました。
SQL*Plusでの接続、簡易接続(コマンドラインからのuser/pwd@servicename)
tnspingでの応答は確認できました。

ですが、プログラム(C#)からコネクションを確立してOpenする際に
「ORA-12154の接続識別子を解決できませんでした」となってしまいます。

環境設定のORACLE_HOMEやpathはインストールされたOracleの
%ORACLE_HOME%binを設定しています。
また、tnsnames.oraはDBServerと同じ内容をWebServerに記述しています。

宜しくお願い致します。
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2009-01-15 17:12
追記です。

WebApplicationとしての画面(web.configなどを利用した)システムは
DBアクセスが出来ました。

ですが、Windowsサービスとして登録した(Batch処理?)のプログラムから
DBアクセスするとORA-12154エラーが発生してしまいます。
エラーコードから見たらtnsnames.oraやTNS_ADMINの参照権限だと思うのですが
上手くいかない状態です。。。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2009-01-15 19:52
その service account が %ORAHOME% 配下に対して読み取りできるような ACL が構成されていることを確認しましたか?
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2009-01-16 21:07
ちゃっぴさんコメントありがとう御座います。

サービスを実行するアカウントを%ORACLE_HOME%配下に全てFullControlを
付与しても現象が変わらずです・・・
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2009-01-21 18:41
自己レスです。

16日(金)に解決しました!情報共有として記録します。
なんとODP.NET(64bit)のバグと言って良いかと・・・

私も知識不足なのですが、Windows2003(64bit)Editionだとエクスプローラを
開いたときに「ProgramFiles」と「ProgramFiles(x86)」という2つのフォルダ構成があり、
VS2008で作成したインストーラーでソフトをインストールするとインストール先を
ウィザードで変更しても自動的に「ProgramFiles(x86)」配下へ展開されてしまいます。
(64bitOS仕様でしょうか?)

そして問題は、ODP.NET(64bit)はアクセスパスに括弧"("などの記号があると
「ORA-12154:指定された接続識別子を解決できませんでした」
という不適切なエラーが発生するのです!
ここまでたどり着くのに3〜4日かかってしまった・・・orz

かなり力技ですが、私は以下の対応を実施しました。
@.インストールで展開されたexeファイルなどを"("がないフォルダパスへコピー
A.登録されたサービスのレジストリを開いて実行パスを上記パスへ変更

これで実行できました。
ただアンインストールする場合は、最初に展開されたフォルダパスにファイルが存在
しないとエラーとなってサービスも綺麗に消えないので注意です。
ぢかれた・・・(汗
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-01-21 19:10
答えを聞いたからわかった話ですが。

http://support.microsoft.com/kb/555568/en-us
解決策も含めてサポート情報にあがってますね。

#機械翻訳による日本語にするとメタメタだなぁ。。。
1

スキルアップ/キャリアアップ(JOB@IT)