昔に作ったIIS7のアプリをIIS8で動かそうとしたらハマったメモ。
VisualStudio2008の場合はSP1を当てましょう。
よく忘れます。
まずプロジェクトを開いて実行すると
「定義済みの ‘system.web.extensions/scripting/scriptResourceHandler’ セクションが重複しています」
こんなエラーが出ました。エラーの中身は実際には関係ないようでアプリケーションプールのCLRバージョンが問題だったようです。
IIS8のデフォルトは4.0ですが、IIS7は2.0。昔のアプリが4.0で動こうとしてエラーを出力しているようなので、デフォルトのアプリケーションプールを2.0にダウングレードするか2.0のアプリケーションプールを作成してアプリに割り当ててやれば解決しました。
アプリケーションプールとはIISがCLRアセンブリの実行が要求された際にアプリケーションプールに処理させます。アプリケーション・ドメインを立ち上げておくことでパフォーマンスの向上や、アプリケーションプールを分けることでアプリの独立性を高めるものだったような気がするような、しないような・・・
ちなみにCLRに3.0が無いのは.NET Framework3.0や3.5がCLR2.0のままで.NET Framework4.0でいきなりCLR4.0になったのでCLR3が無いんですね。
アプリケーションプールの作成や変更はココ
個々のアプリへのアプリケーションプール割り当てはこれ
WEBアプリケーションを右クリックして
アプリケーションの管理 -> 詳細設定
の詳細設定画面でアプリケーションプールを該当するアプリケーションプールに設定しなおしてみてください。