Kobarin's Development Blog

C#やASP.NET、公開APIなどについての記録です。

IIS7.0で.net framework4.0で動作させる

BugTrackerを導入しましたが、.net framework 4.0で動作するようでした。
これまで全て2.0ベースで開発してきたため、4.0は初めてでしたが、VSの開始オプションを「4.0」にすれば良いだけだと軽く考えていました。が、実際にはIIS側の設定が必要でした。

症状から説明します。BugTrackerを導入後に実行したところ、

認識されない属性 'targetFramework' です。

というエラー画面になり、web.configの「」に問題がある事を指摘されました。
エラー画面に共通している、画面下に表示される実行時の.netのバージョンが2.0.xxxとなっており、4.0で実行されていないことが分かります。

ASP.NETサイトを .NET Framework 4環境へ移行すると「構成エラー:認識されない属性 'targetframework' です」エラーが発生する
にもある通り、アプリケーションプール(以降、APとします)側の変更なようで、手順は以下の通り。

  1. IIS Managerを開く
  2. 左サイドより「アプリケーションプール」
  3. .net4にするサイト名を右クリックして「基本設定」
  4. .net framework version」が2になっているので、4に変更

以上で完了したと思いましたが、私の場合この状態だとまだver2.0で実行されていました。
私の場合、サイトアプリケーションのAPが「Default Application Pool1」(だったかな)になっており、サイト名と同じAPになっていなかったためです。
必ずしも同じようになるわけではないと思いますが、もしAPが「Default〜」になってしまっていた場合の方法は以下の通り。

  1. アプリケーションを選択して「基本設定」
  2. アプリケーションプールを「Default〜」からサイト名に変更

以上。