208

kestrel Web サーバーとは何ですか? また、IIS / IIS Express とどのように関係していますか?

私は、IIS Express でアプリを開発し、IIS Web サーバーでそれらをホストしていました。ASP.NET Core には依存関係がMicrosoft.AspNetCore.Server.Kestrelあり、スタートアップには.UseServer("Microsoft.AspNetCore.Server.Kestrel"). しかし、Web サイトを実行すると、システム トレイに IIS Express アイコンが表示されます。IIS Express と Kestrel のどちらを使用しているかを尋ねられましたが、何と答えたらよいかわかりませんでした。

私は PC で開発し、Azure でホストしているため、クロスプラットフォームの要件はありません。そのため、Kestrel を使用するかどうかはneedわかりませんが、代替手段はないようです。最も単純なサンプルでも Kestrel を使用しています。

4

4 に答える 4

149

ケストレルとは

本格的な Web サーバーです。Kestrel だけを使用して、ASP.NET Core アプリケーションを実行できます。

しかし、Web サイトを実行すると、システム トレイに 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 を使用する利点はまだあります。具体的には、セキュリティ構成、カーネルレベルのキャッシュなどを提供します。

于 2016-02-25T22:07:18.003 に答える