IISExpressの.NET Frameworkを2.0 から4.xへ戻す方法

Microsoft Visual Studio Community 2019 (Version 16.9.4)で簡単なWebアプリケーションをサンプルとして作成することになり、対象のフレームワークはデフォルトの .Net Framework 4.7.2で作成した。

ほぼ出来上がったころで、実際に稼働させる環境が Windows Server 2008 のIIS7で.Net Framework 2.0しか無いというのが判明した。
本番で運用してるWebアプリケーションがあるので、環境を変更するわけにはいかない。

対象を変更する前のプロジェクトはプロジェクトフォルダをバックアップコピーして
プロジェクトの対象のフレームワークを.Net Framework 2.0に変更し、2.0でも動くようにプログラムも手直しした。
動くようになった後で、このプロジェクトを別の名前で作成し、対象を変更する前(4.7.2)プロジェクトを元の名前に復帰させた。

対象を2.0にしたアプリケーションは無事リリースできたので、
その後、元々の .Net Framework 4.7.2を対象にしたプロジェクトをVisual Studioでテストしようとしたが、IISExpressのRunTimeがV2.0で起動してしまうため、Web.configに2.0に無いキーワードあってエラーになってしまう。

ローカルのIISで起動させれば動くのだが、やはりIIS ExpressのRunTimeを元のv2.0用に戻したい。

プロジェクトのプロパティを開いてもそれらしい項目がない。
アプリケーションタブの対象のフレームワークを変えても連動してくれないので、
直接applicationhost.configを編集するしかないようだ。

何を変更すればいいのか?
に "ManagedEngine**"が定義されていてそこに.NET FrameworkのDLLが指定されているので、
ここの名前をどこかに設定するのかと思って検索していたが、それらしき情報はまったく引っかからなかった。
いろいろ探してみた結果、
のapplicationPoolを指定し直せば良いことがわかった。

【IISExpressの.NET Frameworkを2.0 から4.xへ戻す方法】Visual Studio 2019 の場合

1.applicationhost.configをテキストエディタで開く。
ファイルはソリューションの.vsフォルダの中にあるプロジェクト名の付いたフォルダ
[ソリューション]\.vs\[プロジェクト]\config\applicationhost.config

2. applicationPoolが"Clr2IntegratedAppPool" になっているので "Clr4IntegratedAppPool"に書き換える。















アプリケーションプールはの少し上に定義してあった。
名前の通り"Clr2IntegratedAppPool"はRuntimeがv2.0 で "Clr4IntegratedAppPool"はv4.0になっている。












このことで得た教訓は、プロジェクトのターゲットの.NET FrameWorkバージョンを変更してみる場合は、プロジェクのフォルダではなくソリューションのフォルダをバックアップしてからやるべきだ。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント