1. ホーム
  2. asp.net

[解決済み】Kestrelとは(IIS / Expressとの比較)

2022-04-11 18:09:57

質問

kestrel Web サーバーとは何ですか、また IIS / IIS Express とどのような関係がありますか?

私はIIS Expressでアプリを開発し、IISウェブサーバーでホスティングしていた経験があります。ASP.NET Core の場合、私は以下のような依存関係があります。 Microsoft.AspNetCore.Server.Kestrel で、私のスタートアップには .UseServer("Microsoft.AspNetCore.Server.Kestrel") . しかし、私のウェブサイトを実行すると、システムトレイにIIS Expressのアイコンが表示されたままです。IIS ExpressとKestrelのどちらを使っているのかと聞かれ、何と答えていいのかわかりませんでした。

PCで開発し、Azureでホストしているので、クロスプラットフォームの要件はないのです。 need Kestrelは、最もシンプルなサンプルでもKestrelを使用しているので、代替手段がないように思えます。

どのように解決するのですか?

<ブロッククオート

Kestrelとは

本格的なウェブサーバーです。ASP.NET CoreアプリケーションをKestrelだけで動作させることができます。

<ブロッククオート

しかし、ウェブサイトを実行すると、システムトレイに IIS Express のアイコンが表示されたままです

ASP.NETアプリケーションの中で、おそらくは wwwroot ディレクトリに、このような内容の web.config があります。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
    <handlers>
    <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
    </handlers>
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
</system.webServer>
</configuration>

これは、HttpPlatformHandlerです。基本的に、これが行うのは すべて リクエストを Kestrel に送信します。IIS Express(およびIIS)は、ASP.NET自体を実行することはありません。代わりに、Kestrelからのリクエストとレスポンスを受け渡すだけのプロキシとして動作します。IISを使用する利点はまだあります。具体的には、セキュリティ設定、カーネルレベルのキャッシュなどを提供します。