4

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 ビットの:

ここに画像の説明を入力

4

1 に答える 1

1

最終的に、私はこれの底に達したと信じています!

そのため、このマシンには x64 構成の一部が欠けているようです。特に、「ISAPI フィルター」構成には、標準の .net 4 aspnet_filter.dll( C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll ) が含まれていましたが、x64 バージョン ( C:\Windows\Microsoft.NET\Framework64\ ) は含まれていませんでした。 v4.0.30319\aspnet_filter.dll )

ここに画像の説明を入力

インフラストラクチャ担当者との会話から、この設定を正しく行う最善の方法は「.Net 4.0 機能をアンインストールしてから再インストールする」ことであると提案されましたが、これには再起動が必要であることに注意してください。

于 2013-05-29T11:48:32.883 に答える