C#, IIS

ちょっとしたアプリを作って、手元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が、終了となったら、すぐに起動させることをして
常に起動した状態を維持してくれる。というものらしい。

投稿日時: 2026-06-11 15:15:11

最近の投稿

最近のコメント

タグ

アーカイブ

その他