web-dev-qa-db-ja.com

IIS Webサイトを64ビットWindowsサーバーで32ビットモードで実行する必要があります。

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サーバーを構築することは避けたいので、どんな助けにも感謝します。

5
Nate

Win 64で32ビットアプリを有効にすることに加えて、32ビットasp.net IIS統合を有効にする必要があります。Windows\ Microsoft.NET\Framework\v2.0.50727(Framework64ディレクトリではありません)実行:

aspnet_regiis -enable -i

6
dmo

@dmoが上記で回答したものに加えて、私はアプリケーションプールでx86アプリを処理できるようにするにする必要がありました。
これを行うには、IIS Managerを開き、Application poolを選択してx86を処理すると予想されます) 詳細設定を開きます。
プロパティを検索します32ビットアプリケーションを有効にしますで、Trueに設定します。

1
Bronek

ODBCドライバを32ビットモードではなく「Any」でアクセスできる他のDLLはありますか?それはあなたの問題であると思われます。同様の問題があり、ドライバーを32ビットのみとするアセンブリを呼び出しましたが、Webアプリは「任意」(64ビット)のままにしました。

0
Beep beep