ASP.NET Core のホスティングモデルによる違い (IIS, HTTP.sys, Kestrel の違い)

ASP.NET Core のホスティングモデルによる違いを紹介します。

概要

ASP.NET Coreを動作させるホスティングモデルは複数あり、ホスティング方式を選択できます。 Windowsの場合は次の3つが選択できます。

  • IIS
  • Kestrel
  • HTTP.sys


それぞれの違いを紹介します。

IIS (Internet Informatio Service)

Windowsで従来からあるWebサーバーです。豊富な機能やプロセス管理等の機能がそろっています。
IISを利用する場合、ASP.NET Coreアプリケーションを動作させる方法は2種類あり、インプロセス ホスティング モデルとアウトプロセス ホスティング モデルが 選択できます。ASP.NET Coreのデフォルトはインプロセス ホスティング モデルを利用します。
インプロセス ホスティングのほうが、アウトプロセス ホスティングよりもパフォーマンスが良いです。

なお、従来のASP.NET (.NET Framework)はアウトプロセス ホスティングで動作します。

Kestrel

ASP.NET Coreアプリを実行するために新しく開発されたWeb サーバーです。 クロスプラットフォームで動作するサーバーで、Windows以外のOSにも対応しています。 ASP.NET Coreアプリケーションを実行するために最適化されており、メモリ使用量やパフォーマンスでも優れています。

一方で非常にシンプルなWebサーバーのため、 Windows 認証に対応していないことや、アクセス制御やキャッシュに対応していないといった制限があります。 キャッシュやアクセス制御などのWebサーバーの機能を利用したい場合は、リバースプロキシを経由してKestrelサーバーと接続する必要があります。

HTTP.Sys

基本的に使う頻度はあまりないです。
IIS は使用したくないが、KestrelのWebサーバーの機能では足りない。といった場合に利用します。 パフォーマンス重視の場合はKestrelを利用し、Webサーバーの充実した機能を利用する場合はIISを利用する方針になるため、利用の機会は少ないと考えられます。

参考ページ

AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2022-07-08
Copyright © 1995–2025 iPentec all rights reserverd.