開発マシンを64ビットWin7にアップグレードしましたが、ローカルのASP.Netプロジェクトに接続しようとすると、次のようになります。
HTTPエラー500 ... ISAPIフィルター "C:\ Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll"でLoadLibraryExを呼び出せませんでした
これにはいくつかの不可解なことがあります。 ASP.Netプロジェクトは.Net2.0 ASMXであったため、C:\ Windows\Microsoft.NET\Framework\v2.0.50727を使用していました。確認せずにx64に更新した場合、C:\ Windows\Microsoft.NET\Framework64\v2.0.50727 \を使用しないでください。 C:\ Windows\Microsoft.NET\Framework\v4.0.30319 \はどこから来ていますか?
IIS Managerを開き、マシンで選択した.NetFrameworkのバージョンは2.0.50727です。デフォルトのアプリケーションプールのフレームワークのバージョンは同じです。
私はVS2008で開発していますが、.Net4.0をターゲットにするオプションすらありません。
.Net 2.0 Frameworkが私のマシンにインストールされ、IIS Manager、ASPNET_REGIIS
登録されていないと述べた:
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
aspnet_regiis -lv
4.0.30319.0 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
これがどのように可能かはわかりません。 ASP.NET 2を再登録すると、問題が修正されました。
aspnet_regiis -i
Finished installing ASP.NET (2.0.50727)
aspnet_regiis -lv
2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
2.0.50727.0 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
4.0.30319.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
Win7へのアップグレードとは何の関係もありませんでした。それはガチョウの追跡でした。
アプリケーションの32ビット部分があり、IISの64ビットアプリケーションプールで実行しようとしているように思えます。デフォルトでは、アプリケーションプールは64ビットOSでは64ビットです。 32ビットモードを有効にするには、アプリケーションプールの詳細プロパティに移動し、[32ビットアプリケーションを有効にする]の設定を変更する必要があります。