私はwebapi、webhost(iis)、owinの関係に頭を悩ませようとしています。私の現在の理解を書き留めます、そしてそれが正しいかどうか教えてください。
Microsoft.Owin.Host.SystemWeb
、Microsoft.AspNet.WebApi.WebHost
)は、上位レベルのAPI(Webapiなど)とIISの間のレイヤーです。 Webapiは当初ホストに依存していなかったため、IISなどの特定のホストで実行するには中間層が必要でした。 Webapiのウェブホスト(Microsoft.AspNet.WebApi.WebHost
)このレイヤーを提供しました。後で、Owin用のWebhostレイヤーもあります(Microsoft.Owin.Host.SystemWeb
)、IISでOwin互換のすべてをホストできるようになります。Microsoft.Owin.Host.SystemWeb
)(WebapiがWebhostに付属していた方法と同様)OwinアプリをIISでホストできるようにしました。セルフホストも付属しています(Microsoft.Owin.SelfHost
)Owinアプリを実行可能ファイル内でホストできるようにしました。 Webapiに関する限り、OwinにはWebapi用のOwin Hostも付属しています(Microsoft.AspNet.WebApi.Owin
)OwinスタックでWebApiを実行できるようにしました。上記のすべては、IISでWebapiをホストする2つの異なる方法があることを意味します。これは、OwinなしでWebapi WebHostを使用して実行することも、Owin Host forWebapiおよびWebhostforOwinを使用して実行することもできます。
Nugetリファレンス:
この理解は正しいですか?
あなたの理解は一般的に正しいですが、OWINの役割は誤解されているようです。より完全なタイムラインは次のようになります。
あなたの要約:
上記のすべては、IISでWebapiをホストする2つの異なる方法があることを意味します。これは、OwinなしでWebapi WebHostを使用して実行することも、Owin Host forWebapiおよびWebhostforOwinを使用して実行することもできます。
私はそれを次のように言い換えます:
上記のすべては、WebAPIをホストする2つの異なる方法があることを意味します。 WebAPI WebHost を使用して、Owinなしで実行できます。または、 WebAPI用のOWINアダプター と任意のOWIN互換ホストを使用して実行できます。 IISのホスティングオプションは Microsoft.Owin.Host.IIS および Microsoft.Owin.Host.SystemWeb 。 Microsoft。 AspNet.WebApi.OwinSelfHost も提供されます。