ASP.NET Core アプリケーションを実行すると「ASP.NET Core does not support multiple apps in the same app pool」 エラーが発生しWebアプリが実行できない現象について紹介します。
現象
2つの別のASP.NET Coreアプリケーションで同じアプリケーションプールを利用すると、最初にアクセスしたアプリケーションは正常に実行できますが、
もう一つのWebアプリケーションにアクセスすると、次のエラーメッセージが表示されます。
HTTP Error 500.35 - ASP.NET Core does not support multiple apps in the same app pool
従来の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アプリケーションのアプリケーション プールの変更は完了です。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-01-24
作成日: 2021-02-23