web-dev-qa-db-ja.com

埋め込みC#Webサーバー?

Java私はアプリに jetty サーバーを埋め込むことができました*)が、.Net用の同等の埋め込み*サーバーテクノロジーはありますか?

可能であれば、オープンソース(FLOSS)をお勧めします。

*組み込みとは、アプリケーションと一緒にパッケージ化してユーザーのローカルデスクトップマシンで実行し、ローカルでWebサービスを提供できる軽量のWebサーバーアプリを意味します。

26
Iain Sproat

これまでに見つけたJettyに最も近いものは Nancy で、次のように記述されています。

.NetとMonoでHTTPベースのサービスを構築するための軽量で儀式的なフレームワーク。

Nancyは、DELETE、GET、HEAD、OPTIONS、POST、PUT、およびPATCHリクエストを処理するように設計されています

Nancyは、既存のフレームワークに依存しないように設計されています。 .NETフレームワーククライアントプロファイルを使用して構築されたNancyは、独自のリクエストオブジェクトと応答オブジェクトで完全に自己完結型であるため、ほとんどどこにでも使用できます。

ナンシーの中心的な概念の1つはホストです。ホストはホスティング環境とナンシーのアダプターとして機能するため、NancyはASP.NET、WCF、OWINなどの既存のテクノロジーで実行したり、特定のアプリケーションに統合したりできます。

さらに軽量なオプションは カヤックUpdate:プロジェクトが2014-01-18で死んでいるように見えます)、そのドキュメント次のように説明します:

シンプルなWebサーバー。接続をリッスンし、リクエストのメモリ内表現を作成して、応答を簡単に生成できるようにします。任意のC#プログラムで使用できます。コードがカヤックをプロセススペースにロードします。

ナンシーとカヤックの両方がMITライセンスされています。

23
Iain Sproat

ここに私が昨年書いたもう一つの代替案があります。

EmbedIO:https://github.com/unosquare/embedio

私は主に、Raspberry Pi(soft-float)でRESTfulサービスを作成するために使用します。

編集:Mono 3.10の更新されたコード、WebSocketのサポート、およびリクエストの非同期処理。

11
Mario

2016年の更新:

ブロックの新しい子供はケストレルです

Kestrelは、MicrosoftによるASP NET Coreイニシアチブの一部であるオープンソースのWebサーバーです。これは、libuvに基づいて構築されたイベントベースのWebサーバーです(基本的にnode.js-js + .net)。つまり、異なるオペレーティングシステム間で簡単に移植できる必要があります。残念ながら、これは外部のネイティブ依存関係が必要であることを意味します。

https://github.com/aspnet/KestrelHttpServer

これを行う古いプロジェクトはNowinです。

https://github.com/Bobris/Nowin/tree/master/Nowin

これは、完全に.net内に構築されたOwinの実装です。残念ながら、ケストレルに代わって廃止されました。

6
Aron

Visual Studioで使用されるものは、cassiniと呼ばれます。 ltiCassini と呼ばれる良い派生物があります。

3
Buddy Lindsey

マイクロソフト自身によるソリューションはカタナと呼ばれ、

https://katanaproject.codeplex.com/

Apacheライセンスの下で完全にオープンソース化されていることに注意してください。

2
Lex Li