Windows Server 2003 x64、R2、SP2を実行するIIS6サーバーセットアップがあります。 IISでWebサイトをホストできるので、すべてがうまく機能していて、望みどおりに機能します。
問題は、32ビットのみのOdbcドライバーを使用する必要があるASP.NET WebAppです。 ASP.NET WebAppをx86のみにコンパイルするように設定しましたが、それでも機能しません。
サーバーでこのコマンドを試してx86ワーカープロセスを有効にしましたが、機能しません:cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true
from here
それでもアプリケーションはOdbcドライバーのロードに失敗します。x86開発マシンで期待どおりに機能するまったく同じコードを実行すると、x86 IIS7でも機能します。この1つのWebApp用に別の本番用Webサーバーを構築することは避けたいので、どんな助けにも感謝します。
Win 64で32ビットアプリを有効にすることに加えて、32ビットasp.net IIS統合を有効にする必要があります。Windows\ Microsoft.NET\Framework\v2.0.50727(Framework64ディレクトリではありません)実行:
aspnet_regiis -enable -i
@dmoが上記で回答したものに加えて、私はアプリケーションプールでx86アプリを処理できるようにするにする必要がありました。
これを行うには、IIS Managerを開き、Application poolを選択してx86を処理すると予想されます) 詳細設定を開きます。
プロパティを検索します32ビットアプリケーションを有効にしますで、Trueに設定します。
ODBCドライバを32ビットモードではなく「Any」でアクセスできる他のDLLはありますか?それはあなたの問題であると思われます。同様の問題があり、ドライバーを32ビットのみとするアセンブリを呼び出しましたが、Webアプリは「任意」(64ビット)のままにしました。