「指定されたDSNには、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています」が発生した場合の対処

いつもはJenkinsさんがやってくれるんだけど、事情により手動でやったらハマったのでメモ。

この文言のエラーメッセージでググると↓のが出ます。

64bit OS 環境で 32bit アプリケーションを起動し、ODBC を使ってデータベースなどにアクセスしようとするとタイトルのようなエラーが発生します。

これは管理ツールにある ODBC 接続のプログラムが 64bit 版であることに起因しているためです。23bit アプリケーションで ODBC を使うには 32bit 版の ODBC 接続から登録する必要があります。プログラムは

%WINDOWS%Syswow64\odbcad32.exe (C:\Windows\Syswow64\odbcad32.exe)

[ODBC] エラー:指定されたDSNには、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています | おのでらの創作日記 in ソーサリーフォース

これはこれで、以前ハマりましたがここは正しく設定している。
今回はIISの設定の問題でした。

アプリケーションプール|32ビットアプリケーションの有効化=True

ClassicASPをWin2008R2x64に移設で、エラー '80004005' 発生

具体的な設定は以下のとおり。

  • アプリケーションプール内で選択
  • アプリケーションプールの編集
  • 詳細設定
  • 全般
  • 32ビットアプリケーションの有効化