0

クライアントがWOW64を有効にしてIISを実行していて、64ビットDLLを読み込めないと不平を言っています。

これを行う方法はありますか?

また、IISをWOW64で実行すると、すべての.NETコードが32ビットの.NETランタイムで実行されていることを意味しますか?

4

1 に答える 1

1

IISがWoW64で実行される32ビットW3WP.EXEを開始するように構成されている場合、はい、そのワーカープロセス内で発生することはすべて、32ビットモードで発生するため、32ビット.NETランタイムを使用します。

これに対する当然の結果として、64ビットDLLは32ビットプロセスと互換性がないため、ロードできません。DLLの32ビットバージョンを提供する必要があるか、クライアントで32ビットW3WP.exeを無効にする必要があります。

DLLがCOMDLLの場合は、さらにオプションがあります。COM+に登録し、IISアプリからアウトプロセスで実行します。これは、32ビットコードがCOM呼び出しメカニズムを介して64ビットコードを呼び出すことができることを意味します(Windowsが内部で処理します)。

これを変更するIISの設定は、IISの[アプリケーションプール]プロパティの下にあり、[ 32ビットアプリケーションを有効にする]です。trueに設定すると、32ビットワーカープロセスが強制されます。falseに設定すると、64ビットワーカープロセスが有効になります。

于 2012-03-27T14:58:25.863 に答える