ひょんなことからASPを自作したのですが、開発PCのMicrosoft Visual Web Developer 2010では正常に動作するのに、Windows Server 2012のIISで動作させた時だけ、初回アクセス時に以下のエラーが表示されるようになりました。
HTTP エラー 500.21 - Internal Server Error
ハンドラー "PageHandlerFactory-Integrated-4.0" のモジュール リストにあるモジュール "ManagedPipelineHandler" が正しくありません
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以降はサポートされていないもののようです。
困り果てて色々設定を変えていたところ、アプリケーションプールの「マネージパイプラインモード」を「統合」から「クラシック」に変更すると、初回アクセスもスムーズに動作するようになりました。
なんてことない、開発者がへぼいせいで残念な結果でした。