ちょっとしたアプリを作って、手元PC内だけで動かしたい場合、
.net frameworkの時代は何も考えなくとも動かせたけど、.NETはそうもいかないので、メモ
最低限インストールするもの→Hosting Bundle(SDKやRuntimeではなくHosting Bundleを選ぶこと)
https://dotnet.microsoft.com/ja-jp/download/dotnet/10.0
アプリケーションプール→.NET CLRバージョン = マネージドコードなし

あとは通常のリリースと同じ作業をおこなえばよいです。
ちなみに、 Hosting Bundleが正しく入ったかどうかは、以下で確認できるとのことですが・・・
Get-WebConfiguration system.webServer/globalModules/* | Where-Object { $_.name -like "*AspNetCore*" }
Get-WebConfiguration: The term 'Get-WebConfiguration' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Get-WebConfigurationを認知できなかったので、モジュールを追加(要管理者権限)
以下でインストール
Import-Module WebAdministration
警告メッセージにモジュールがPowerShell 7+と完全互換ではないと出るけど特に問題ないとのこと。
AspNetCoreModuleV2が表示されればOK
実運用では、Application Initializationも追加する。
これの必要性については、.NETは appサーバー(Kestrel)によって動く。
よって、nginxがフロントにあって、バックエンドにKestrelといった感じになる。
IISではどうなるかというとIISがうけて、Kestrelが処理を行う。
IISがKestrelの起動または停止する。
起動については、最初のリクエストが来た時に、起動する。
停止については、アプリケーションの設定に従って停止する。
- Idle-Time-out(デフォルト20分)
- リサイクル設定
- メモリ制限
- 手動停止
アクセスがないとKestrelは自動的に終了する。
そのためリクエストがないと再起動時に多少もたつくことになる。
そこで、APpication Initializationが、終了となったら、すぐに起動させることをして
常に起動した状態を維持してくれる。というものらしい。