- - PR -
Windows2003Server(64bit)でのASP.NET oracleエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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に記述しています。 宜しくお願い致します。 |
|
投稿日時: 2009-01-15 17:12
追記です。
WebApplicationとしての画面(web.configなどを利用した)システムは DBアクセスが出来ました。 ですが、Windowsサービスとして登録した(Batch処理?)のプログラムから DBアクセスするとORA-12154エラーが発生してしまいます。 エラーコードから見たらtnsnames.oraやTNS_ADMINの参照権限だと思うのですが 上手くいかない状態です。。。 |
|
投稿日時: 2009-01-15 19:52
その service account が %ORAHOME% 配下に対して読み取りできるような ACL が構成されていることを確認しましたか?
|
|
投稿日時: 2009-01-16 21:07
ちゃっぴさんコメントありがとう御座います。
サービスを実行するアカウントを%ORACLE_HOME%配下に全てFullControlを 付与しても現象が変わらずです・・・ |
|
投稿日時: 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.登録されたサービスのレジストリを開いて実行パスを上記パスへ変更 これで実行できました。 ただアンインストールする場合は、最初に展開されたフォルダパスにファイルが存在 しないとエラーとなってサービスも綺麗に消えないので注意です。 ぢかれた・・・(汗 |
|
投稿日時: 2009-01-21 19:10
答えを聞いたからわかった話ですが。
http://support.microsoft.com/kb/555568/en-us 解決策も含めてサポート情報にあがってますね。 #機械翻訳による日本語にするとメタメタだなぁ。。。 |
1