1

IIS6.0 を実行している Windows 2003 サーバーから IIS7 を実行している 64 ビット Windows 2008 R2 に移動した従来の ASP アプリケーションがあります。IIS7 で Web サイトを作成し、それにアプリケーションを追加し、アプリケーション プールを設定して 32 ビット アプリケーションを有効にしました。

アプリケーションは、ORAOLEDB ドライバーを使用して Oracle データベースに接続します。64 ビットの Oracle クライアント 11.2.0.3 をインストールして、バックエンドの Oracle 11g データベースに接続し、SQLPlus を使用してアプリケーションと同じユーザーを介して正常に接続できます。

ただし、アプリケーションを実行すると、Oracle への接続に失敗し、IIS ログに次のエラーが表示されます。

「プロバイダが見つかりません。正しくインストールされていない可能性があります」

これを機能させるために、さまざまな可能性を試しました。

  • OraOLEDB11.dll の手動登録
  • アプリ プールからの 32 ビット アプリケーションの無効化
  • 32 ビット アプリを有効または無効にして、代わりに 32 ビット ドライバーを使用する
  • ドライバーを完全に再インストールし、上記のすべてを試す

これまでのところ、運がありません。asp コードは次のように接続します。

objOracleConnection.CursorLocation = adUseClient
objOracleConnection.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=MYDATASOURCE;User ID=USER;Password=PASSWORD;PLSQLRSet=1;OLE DB Services=-2;"
objOracleConnection.Open

編集:単純な VBS スクリプト (基本的に上記と同じコードを使用) を使用して接続しようとしましたが、同じエラーが発生するため、IIS は問題ではない可能性があります。ただし、まったく同じスクリプトが Windows 2003 ボックスで機能します。

「互換性のトラブルシューティング」オプションを使用して Oracle クライアントを再インストールしました。これは、アプリケーションが Windows 2003 SP1 で動作することを示していますが、VBS スクリプトと IIS アプリケーションの両方から同じ問題が発生することを示しています :(

4

1 に答える 1