Java では、Jettyサーバーをアプリに埋め込む*ことができましたが、.Net 用の同等の埋め込み*サーバー技術はありますか?
可能であれば、オープン ソース (FLOSS) が優先されます。
*組み込みとは、アプリケーションと一緒にパッケージ化してユーザーのローカル デスクトップ マシン上で実行し、ローカルで Web サービスを提供できる軽量の Web サーバー アプリを意味します。
Java では、Jettyサーバーをアプリに埋め込む*ことができましたが、.Net 用の同等の埋め込み*サーバー技術はありますか?
可能であれば、オープン ソース (FLOSS) が優先されます。
*組み込みとは、アプリケーションと一緒にパッケージ化してユーザーのローカル デスクトップ マシン上で実行し、ローカルで Web サービスを提供できる軽量の Web サーバー アプリを意味します。
これまでに見つけた Jetty に最も近いものはNancyで、次のように説明されています。
.Net および Mono で HTTP ベースのサービスを構築するための軽量で控えめなフレームワークです。
Nancy は、DELETE、GET、HEAD、OPTIONS、POST、PUT、および PATCH リクエストを処理するように設計されています。
Nancy は、既存のフレームワークに依存しないように設計されています。.NET フレームワーク クライアント プロファイルで構築された Nancy は、独自の要求オブジェクトと応答オブジェクトで完全に自己完結しているため、必要な場所でほぼ使用できます。
Nancy のコア概念の 1 つはホストです。ホストは、ホスティング環境と Nancy のアダプターとして機能するため、Nancy を ASP.NET、WCF、OWIN などの既存のテクノロジで実行したり、特定のアプリケーションに統合したりできます。
さらに軽量なオプションはKayak (更新: プロジェクトは 2014 年 1 月 18 日の時点で死んでいるように見えます) で、そのドキュメントには次のように説明されています。
シンプルなウェブサーバー。接続をリッスンし、リクエストのメモリ内表現を作成し、レスポンスを簡単に生成できるようにします。任意の C# プログラムで使用できます。あなたのコードは Kayak をそのプロセス空間にロードしますが、その逆ではありません!
Nancy と Kayak はどちらも MIT ライセンスを取得しています。
これは私が昨年書いた別の代替案であり、私に役立っています。
EmbedIO: https://github.com/unosquare/embedio
主に Raspberry Pi (soft-float) で RESTful サービスを作成するために使用します。
編集: Mono 3.10 の更新されたコード、WebSockets のサポート、および要求の非同期処理。
2016 年の更新:
ブロックの新しい子供はケストレルです.
Kestrel は、Microsoft による ASP NET Core イニシアチブの一部であるオープン ソース Web サーバーです。これは、libuv (基本的にはnode.js
- js
+ .net
) に基づいて構築されたイベント ベースの Web サーバーです。これは、異なるオペレーティング システム間で簡単に移植できる必要があることを意味します。残念ながら、これは外部のネイティブ依存関係が必要であることを意味します。
https://github.com/aspnet/KestrelHttpServer
これを行う古いプロジェクトはNowin です
https://github.com/Bobris/Nowin/tree/master/Nowin
これは、完全に .net 内に構築された Owin の実装です。残念ながら、Kestrel を支持して廃止されました。
Visual Studio で使用されるものは cassini と呼ばれます。UltiCassiniと呼ばれる優れた派生物があります。
マイクロソフト自体のソリューションは Katana と呼ばれ、
https://katanaproject.codeplex.com/
Apache ライセンスの下で、完全にオープンソースであることに注意してください。