ASP.NETでHTTP Error 500.21が表示された時の対応

ひょんなことからASPを自作したのですが、開発PCのMicrosoft Visual Web Developer 2010では正常に動作するのに、Windows Server 2012のIISで動作させた時だけ、初回アクセス時に以下のエラーが表示されるようになりました。

HTTP エラー 500.21 - Internal Server Error
ハンドラー "PageHandlerFactory-Integrated-4.0" のモジュール リストにあるモジュール "ManagedPipelineHandler" が正しくありません
ASP_NET_IIS_HTTP_500_21_Error_1

2回目にアクセスしたときは正常に動作するので、サーバのタスクスケジューラーで15分おきに該当URLにアクセスして、ユーザ影響がないようにしようかと考えておりました。
ネット上で検索すると、下記コマンドを実行して.NET Frameworkを修復しろと書いてあります。

■32bit OSの場合
%windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i

■64bit OSの場合
%windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –i

ただし、上記コマンドはWindows Server 2008 R2までで、Windows 2012以降はサポートされていないもののようです。

困り果てて色々設定を変えていたところ、アプリケーションプールの「マネージパイプラインモード」を「統合」から「クラシック」に変更すると、初回アクセスもスムーズに動作するようになりました。
ASP_NET_IIS_HTTP_500_21_Error_2

なんてことない、開発者がへぼいせいで残念な結果でした。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください