II6 から IIS8 へのステージング Web サイトの移行に取り組んでいます。
IIS8には、true false フラグであるEnable 32-Bit Applicationsオプションが付属しています。このフラグの説明は次のとおりです。
[enable32BitAppOnWin64] 64 ビット オペレーティング システムのアプリケーション プールに対して True に設定すると、アプリケーション プールを提供するワーカー プロセスは WOW64 (Windows on Windows64) モードで実行されます。WOW64 モードでは、32 ビット プロセスは 32 ビット アプリケーションのみをロードします。
これをFalse
自分の Web サイトに設定すると、サービスが停止し、500 ログのエラー メッセージが表示されます。
構成の問題により、ISAPI フィルター 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll' を読み込めませんでした。現在の構成では、AMD64 プロセッサ アーキテクチャ用にビルドされたイメージの読み込みのみがサポートされています。データ フィールドにはエラー番号が含まれます。この種のプロセッサ アーキテクチャの不一致エラーのトラブルシューティング方法など、この問題の詳細については、次を参照してください。
x86フラグが設定されたアセンブリである必要があると推測したので、CorFlagsを使用してこの投稿の指示に従ってこれを確認しました。しかし、すべての戻り値、つまりAny CPU
Version : v4.0.30319
CLR Header : 2.5
PE : PE32
CorFlags : 9
ILONLY : 1
32BIT : 0
Signed : 0
若干の変更がありますが、それが主旨です。
では、なぜ [32 ビット アプリケーションを有効にする] を に設定する必要があるのTrue
でしょうか?
したがって、 Process Explorerを使用してさらに調査を行ったところ(この質問は役に立ちました)、32 ビット アプリケーションを有効に設定するFalse
と、Corflags が 32 ビットを必要としないと言っていても、いくつかの dll にイメージ タイプがあるようです。 32 ビットの: