5

一部の顧客サイトを非常に古い IIS サーバーから新しいサーバーに移動する必要があり、一部のサイトは正常に動作しません。それらのほとんどは、次のような失敗について不平を言っています。

Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'

[Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません。

これは、ユーザーに与えられた権限がないことに依存する可能性があることをインターネットで読みました。他のサイトでは、一時フォルダーが見つからないと述べています (これが正しいとは想像できません)。他にもいくつかの「解決策」があります。

サーバー上のすべての人に権利を開くことは(誰かが述べたように)、私にとっては選択肢ではありません。また、すべての顧客に明示的な権利を与えることは非常に苦痛です (権利を必要とする顧客が何人かいます)。

もっと簡単な解決策、同様の方法、または代替手段を知っていますか?

4

9 に答える 9

2

このエラーは、ほとんどの場合、ADODB.connectionオブジェクトの.open()メソッドが呼び出されたときに接続文字列が正しくないことが原因で発生します。

たとえば、次のコードを見てください。

Dim SqlUsername : SqlUsername = "YOURSQLUSERNAME"
Dim SqlPassword : SqlPassword = "YOURSQLPASSWORD"
Dim ConnectionString : ConnectionString = "DRIVER={SQL Server};SERVER=YOURSERVERNAME;DATABASE=YOURDATABASENAME;UID=" & SqlUsername & ";PWD=" & SqlPassword 
Dim db
Set db = Server.CreateObject("ADODB.Connection")
db.Open ConnectionString , SqlUsername , SqlPassword 

接続文字列にドライバー識別子 (この例では SQL Server) が含まれていることに注意してください。

アプリケーションのどこかにadodb.connection.open()、接続文字列で呼び出されるメソッドがあり、それを見つけて、使用されているドライバーを特定し、サーバーにインストールする必要があります。

留意すべきもう 1 つの点は、一部のデータ ソース ドライバーは 32 ビットであり、IIS の 64 ビット アプリケーション プールで Web サイトを実行している場合は、32 ビット オブジェクトを許可する必要があることです。これについては、次の関連する質問を参照してください: Uploading picture after migration from IIS 6.0 to IIS7.5

于 2013-01-11T16:32:31.447 に答える
2

従来のASPとで作業しているときに、同様の問題が発生しましたIBM DB2 ODBC Driver。私のローカルに 2 つの Web サイトが構成されていIIS 7.5ます。Connection.Open はデフォルトの Web サイトでは正常に動作しますが、2 番目の Web サイトでは正常に動作しません。私の知る限り、およびスタックオーバーフローからの提案によると、いくつかの構成変更の後、この場合は役に立ちませんでした。 .

私にとってうまくいったのは、クラシックアプリケーションプールの32bitアプリケーションの詳細設定を有効にする(Trueに設定する)ことです。ASP.NET V4.0

Application Pools-->ASP.NET V4.0 Classic-->
           Advanced Settings--> under General Options double click Enable 32-bit Applications to set to True.

この小さな構成は、同じ問題を抱えている人を助けるかもしれません。

于 2016-07-26T05:53:18.743 に答える
1

古いサーバーにはいくつかのODBC DSN (データ ソース名) が定義されており、これがアプリケーションがデータベースに接続する方法です。これらを新しいサーバーで定義する必要があります。サーバーのコントロール パネルを見てください。

于 2013-01-11T22:32:45.983 に答える
1

確かに今、あなたはあなたの問題を解決しましたが、それにもかかわらず、知識の目的のために、ここでうまくいくものがあります:

@webaware の発言に加えて、新しいサーバー マシンで以下の手順に従ってください。

  1. コントロールパネルに移動
  2. 管理ツール
  3. データ ソース (ODBC)
  4. [システム DSN] タブをクリックします
  5. 追加ボタンをクリックします
  6. Oracle in Clientドライバーを探して選択します。
  7. ここで、データ ソース名、説明、TNS サービス名、およびユーザー ID を入力します。

注:正しい TNS サービス名とユーザー ID については、データベース管理者に問い合わせてください。接続をテストするには、ユーザー ID も必要です。

  1. [接続のテスト] ボタンをクリックします。
  2. TNS サービス名をサービス名として入力し、ユーザー ID をユーザー名として入力し、ユーザー ID のパスワードを入力します。
  3. [OK] ボタンをクリックします。

これで接続が成功するはずです。

于 2017-05-24T12:04:08.280 に答える
1

コントロール パネル Plesk 12.5 を Plesk Onyx 17.5.3 に更新した後も同じ問題が発生し、ODBC ドライバが 5.3 に更新されたことを確認しました。

問題を解決するために、接続文字列で ( 5.1 ) を ( 5.3 Unicode Driver ) に変更しました。

これを変える :

Conn.Open "DRIVER={MySQL ODBC 5.1 };SERVER=localhost; DATABASE=psa; UID=admin;PASSWORD=mypassword;Port=8306; OPTION=3"

に :

Conn.Open "DRIVER={MySQL ODBC **5.3 Unicode Driver**};SERVER=localhost; DATABASE=psa; UID=admin;PASSWORD=mypassword;Port=8306; OPTION=3"
于 2018-04-19T18:03:20.233 に答える