ASP.NET Core アプリケーションを実行すると「ASP.NET Core does not support multiple apps in the same app pool」 エラーが発生しWebアプリが実行できない現象について紹介します。
2つの別のASP.NET Coreアプリケーションで同じアプリケーションプールを利用すると、最初にアクセスしたアプリケーションは正常に実行できますが、
もう一つのWebアプリケーションにアクセスすると、次のエラーメッセージが表示されます。
従来のASP.NET アプリケーションでは複数のWebアプリケーションを1つのアプリケーションプールで動作させることができましたが、ASP.NET Coreアプリケーションでは
同じ設定でアプリを実行しようとすると上記のエラーが発生します。
ASP.NET Coreアプリケーションはデフォルトの設定ではインプロセス ホスティング(In Process Hosting) で動作します。
従来のASP.NETアプリケーションはアウトプロセス ホスティングで動作しますが、インプロセスホスティングで動作することでWebアプリケーションのパフォーマンスが向上します。
インプロセスホスティングで動作した場合、アプリケーションプールをアプリ間で共有することができない仕様になっており、1つのアプリごとに1つのアプリケーションプールを用意する必要があります。
(参考:https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/iis/in-process-hosting?view=aspnetcore-5.0)
アプリケーションごとにアプリケーションプールを作成してWebアプリに割り当てます。
アプリケーションプールの作成手順はこちらの記事を参照してください。
作成したアプリケーションをWebアプリケーションに割り当てる手順は次の通りです。
[インターネット インフォメーション サービス (IIS) マネージャー]を起動します。左側のツリービューでアプリケーションプールを変更したいWebアプリケーションのフォルダを選択します。
フォルダを選択したら右クリックしポップアップメニューを表示します。メニューの[アプリケーションの管理]の[詳細設定...]の項目をクリックします。
下図の[詳細設定]ダイアログが表示されます。[全般]セクションの[アプリケーション プール]の項目をクリックして選択します。右側の値の欄の右端にある[...]ボタンをクリックします。
[アプリケーションプールの選択]ダイアログが表示されます。[アプリケーション プール]のコンボボックスをクリックします。ドロップダウンリストが表示され、アプリケーションプールの
一覧が表示されます。変更したいアプリケーションプールを選択します。
変更後のアプリケーションプールを選択し、[OK]ボタンをクリックしてダイアログボックスを閉じます。
[詳細設定]ダイアログに戻ります。[アプリケーション プール]の値が変更後のアプリケーションプール名に変わっていることが確認できます。
以上でWebアプリケーションのアプリケーション プールの変更は完了です。