現在オフラインです。再接続するためにインターネットの接続を待っています

[PRB] ASP エラー 80004005 "データ ソース名および指定された既定のドライバーが見つかりません"

この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
ActiveX データ オブジェクト (ADO) または ODBC を使用して Active Server Pages (ASP) ページでデータベース接続を開くと、以下のエラー メッセージが表示されることがあります。
Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'
[Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。
原因
このエラーは、ADO および ODBC を使用して ASP ページでデータベース接続を開く際に、DSN ベースの接続文字列 (システム DSN を使用する接続文字列) または DSN レス接続の接続文字列を使用すると発生することがあります。このエラーの一般的な原因は次のとおりです。

ODBC DSN の使用

  • ASP ページの要求処理に使用される Microsoft Windows NT 4.0 または Windows 2000 ユーザー アカウントが、指定された DSN の構成情報を格納しているレジストリ キーを読み取るために必要なアクセス許可を持っていません。
  • ADO 接続文字列で指定されたシステム ODBC DSN が IIS サーバー上に存在しません。
  • ADO 接続文字列の指定には、ASP Application 変数か Session 変数を使用します。これらの変数は、ASP アプリケーションの Global.asa ファイル (またはデータベース接続コードを含むページより先にアクセスされる ASP ページ) 内で初期化されます。この ADO 接続文字列の変数が、データベース接続を開くコードの実行時に初期化されません。これを確認するには、データベース接続を開くコード行の前に Response.Write ステートメントを追加して、変数に格納された接続文字列を表示します。

DSN レス接続の接続文字列の使用

  • ASP ページの要求処理に使用される Microsoft Windows NT 4.0 または Windows 2000 ユーザー アカウントが、指定された ODBC ドライバーの構成情報を格納しているレジストリ キーを読み取るために必要なアクセス許可を持っていません。DSN レス接続の接続文字列の Driver パラメーターには、データベース接続の確立に使用される ODBC ドライバーを指定します。
  • 接続文字列で指定された ODBC ドライバー名のスペルに誤りがあるか、Internet Information Server (IIS) サーバーにインストールされていないドライバーを指定しています。
  • ADO 接続文字列の指定には、ASP Application 変数か Session 変数を使用します。これらの変数は、ASP アプリケーションの Global.asa ファイル (またはデータベース接続コードを含むページより先にアクセスされる ASP ページ) 内で初期化されます。この ADO 接続文字列の変数が、データベース接続を開くコードの実行時に初期化されません。これを確認するには、データベース接続を開くコード行の前に Response.Write ステートメントを追加して、変数に格納された接続文字列を表示します。
解決方法
重要 このセクション、方法、またはタスクには、レジストリを変更する手順が記載されています。しかし、レジストリを誤って変更すると、深刻な問題が発生する可能性があります。したがって、これらの手順は慎重に実行する必要があります。万一に備えて、変更前のレジストリをバックアップしてください。これにより、問題が発生した場合にレジストリを復元することが可能になります。レジストリのバックアップ方法と復元方法の詳細については、以下のサポート技術情報番号をクリックしてください。
322756 Windows でレジストリをバックアップおよび復元する方法

ODBC DSN の使用

DSN レジストリ キーを読み取るためのアクセス許可が不十分

以下の手順で、Windows NT 4.0 または Windows 2000 ユーザー アカウントに、指定された ODBC システム DSN のレジストリ キーへの読み取りアクセス許可を与えます。
  1. ASP ページの要求処理に使用するアカウントを決定します。
  2. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。「regedt32.exe」と入力し、[OK] をクリックしてレジストリ エディターを起動します。
  3. [HKEY_LOCAL_MACHINE] ウィンドウで、HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI キーに移動します。ODBC.INI キーには、サーバーに登録されている各 ODBC SYSTEM DSN のサブキーがあります。
  4. ADO 接続文字列で指定された DSN の DSN レジストリ キーをクリックします。
  5. [セキュリティ] メニューの [アクセス許可] をクリックします。
  6. このキーにアクセスできるユーザーの一覧に、手順 1. で決定したユーザー アカウントを追加し、このユーザーの読み取りアクセス許可の [許可] チェック ボックスをオンにします。
  7. [適用] をクリックし、レジストリ エディターを閉じます。

指定された DSN が IIS サーバー上に存在しない

指定されたシステム ODBC DSN を IIS サーバー上に作成します。

ADO 接続文字列を初期化するための Global.asa コードが実行されない

  1. IIS アプリケーション フォルダーが、スクリプト実行のアクセス許可を持つ IIS 仮想ディレクトリとして設定されていることを確認します。
  2. IIS アプリケーションのルート ディレクトリ内に Global.asa ファイルがあることを確認します。
  3. アプリケーション フォルダーが IIS 仮想ディレクトリとして既に設定されている場合は、IIS アプリケーションを削除して作成し直します。
  4. 「関連情報」に記載されている資料を参照して、発生している問題に該当する資料がないかどうかを調べます。
  5. 前述の手順を実行しても Global.asa のコードが実行されない場合は、Microsoft Product Support Services に問い合わせてください。

DSN レス接続の接続文字列の使用

指定された ODBC Driver のレジストリ キーを読み取るためのアクセス許可が不十分

以下の手順で、Windows NT 4.0 または Windows 2000 ユーザー アカウントに、指定された ODBC Driver のレジストリ キーへの読み取りアクセス許可を与えます。
  1. ASP ページの要求処理に使用するアカウントを決定します。
  2. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。「regedt32.exe」と入力し、[OK] をクリックしてレジストリ エディターを起動します。
  3. [HKEY_LOCAL_MACHINE] ウィンドウで、HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI キーに移動します。ODBCINST.INI キーには、サーバーにインストールされている各 ODBC Driver のサブキーがあります。
  4. ADO 接続文字列で指定された Driver の Driver レジストリ キーをクリックします。
  5. [セキュリティ] メニューの [アクセス許可] をクリックします。
  6. このキーにアクセスできるユーザーの一覧に、手順 1. で決定したユーザー アカウントを追加し、このユーザーの読み取りアクセス許可の [許可] チェック ボックスをオンにします。
  7. [適用] をクリックし、レジストリ エディターを閉じます。

ドライバー名のスペルに誤りがあるか、IIS サーバーにインストールされていないドライバーを指している

ADO 接続文字列で ODBC ドライバー名のスペルが正しいかどうかを確認します。さらに、指定されたドライバーが IIS サーバーにインストールされているかどうかを確認します。システムにインストールされている ODBC ドライバーの一覧を表示するには、ODBC データ ソース アドミニストレーター (Odbcad32.exe) の [ドライバー] タブをクリックします。

ADO 接続文字列を初期化するための Global.asa コードが実行されない

  1. IIS アプリケーション フォルダーが、スクリプト実行のアクセス許可を持つ IIS 仮想ディレクトリとして設定されていることを確認します。
  2. IIS アプリケーションのルート ディレクトリ内に Global.asa ファイルがあることを確認します。
  3. アプリケーション フォルダーが IIS 仮想ディレクトリとして既に設定されている場合は、IIS アプリケーションを削除して作成し直します。
  4. 「関連情報」に記載されている資料を参照して、発生している問題に該当する資料がないかどうかを調べます。
  5. 前述の手順を実行しても Global.asa のコードが実行されない場合は、Microsoft Product Support Services に問い合わせてください。
状況
この動作は仕様です。
詳細
ASP ページの要求処理に使用される資格情報を持つ Microsoft Windows NT 4.0 または Windows 2000 ユーザー アカウントは、Web Server がユーザー要求の認証に使用する認証メカニズムによって決定されます。たとえば匿名認証を使用する場合、構成されている IIS 匿名アカウント (既定で IUSR_<WebServerName> アカウント) の資格情報でユーザー要求が処理されます。基本認証を使用する場合は、Microsoft Internet Explorer で有効な Windows NT 4.0 または Windows 2000 ネットワーク ユーザー ID とパスワードの入力が求められ、入力したユーザーの資格情報を使用して要求が処理されます。サポートされている認証メカニズムとそのしくみについては、IIS オンライン マニュアルを参照してください。
関連情報
詳細については、以下のサポート技術情報番号をクリックしてください。
188715 VID で作成した IIS 4.0 アプリケーションで Global.ASA が起動されない
288245 [PRB] Windows 98 の Personal Web Server から Global.asa が起動されない
265275 [FP2000] FrontPage Web で Global.asa が実行されない
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:306345 - 最終更新日: 12/06/2015 04:57:46 - リビジョン: 1.0

  • Microsoft Internet Information Services 5.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.6 Service Pack 1
  • Microsoft Data Access Components 2.7
  • kbnosurvey kbarchive kbprb KB306345
フィードバック