嵌入式C#Web服务器?

在Java中,我已经能够在我的应用程序中嵌入* jetty服务器,但是.Net是否有等效的嵌入式*服务器技术?

如果可能的话,开源(FLOSS)将是首选。

*通过嵌入式我的意思是一个轻量级的Web服务器应用程序,可以与我的应用程序打包并在用户的本地桌面计算机上运行,​​以在本地提供Web服务。

到目前为止,我发现的与Jetty最接近的是Nancy ,描述如下:

一个轻量级,低仪式的框架,用于在.Net和Mono上构建基于HTTP的服务。

Nancy旨在处理DELETE,GET,HEAD,OPTIONS,POST,PUT和PATCH请求

Nancy被设计为对现有框架没有任何依赖性。 使用.NET框架客户端配置文件构建,Nancy可以在任何您想要的地方使用,因为它完全自包含它自己的请求和响应对象。

Nancy的核心概念之一是主机。 主机充当托管环境和Nancy的适配器,从而使Nancy能够在现有技术(如ASP.NET,WCF和OWIN)上运行,或者集成到任何给定的应用程序中。

一个更轻量级的选择是Kayak ( 更新 :项目在2014-01-18期间看起来很糟糕),其文档描述为:

一个简单的Web服务器。 它侦听连接,创建请求的内存表示,并允许您轻松生成响应。 它可以在任何C#程序中使用。 您的代码将Kayak加载到其进程空间 – 而不是相反!

Nancy和Kayak都获得麻省理工学院的许可。

这是我去年写的另一个选择,并且对我有好处。

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

我主要用它来在Raspberry Pi(soft-float)上创建RESTful服务。

编辑:更新了Mono 3.10的代码,支持WebSockets和请求的异步处理。

2016年更新:

街区的新孩子是Kestrel。

Kestrel是一个开源Web服务器,是Microsoft的ASP NET Core计划的一部分。 它是一个基于事件的网络服务器,建立在libuv(它基本上是node.jsjs + .net )之上。 这意味着它应该可以在不同的操作系统之间轻松移植。 不幸的是,它确实意味着它需要外部本机依赖。

https://github.com/aspnet/KestrelHttpServer

一个较旧的项目是Nowin

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

这是Owin完全在.net内构建的实现。 不幸的是,它已被弃用赞成Kestrel。

与Visual Studio一起使用的那个叫做cassini。 有一个很好的衍生物叫UltiCassini 。

微软自己的解决方案叫做Katana,

https://katanaproject.codeplex.com/

请注意,在Apache许可下,它是完全开源的。