如果可能的话,最好使用开源(FLOSS)。
*通过嵌入,我指的是一个轻量级的Web服务器应用程序,可以与我的应用程序打包,并在用户的本地桌面计算机上运行,以提供本地Web服务。
另一个更轻量级的选择是Kayak(更新:截至2014-01-18,该项目已死亡),它的文档描述为:一个轻量级、低仪式感的框架,用于在.Net和Mono上构建基于HTTP的服务。
Nancy旨在处理DELETE、GET、HEAD、OPTIONS、POST、PUT和PATCH请求。
Nancy的设计不依赖于现有框架。使用.NET框架客户端配置文件构建,Nancy可以在几乎任何地方使用,因为它完全自包含,具有自己的请求和响应对象。
Nancy中的核心概念之一是主机。主机充当托管环境和Nancy的适配器,从而使Nancy能够在现有技术(如ASP.NET、WCF和OWIN)上运行,或集成到任何给定应用程序中。
Nancy和Kayak都是MIT许可证。一个简单的Web服务器。它监听连接,创建请求的内存表示,并允许您轻松生成响应。它可以在任何C#程序中使用。你的代码将Kayak加载到其进程空间中——而不是反过来!
HttpListener
,通过 WAS 钩入 IIS。 - Aron这是我去年写的另一种备选方案,并且一直以来都很好用。
EmbedIO:https://github.com/unosquare/embedio
我主要使用它在树莓派(软浮点)上创建RESTful服务。
编辑:已更新代码以支持Mono 3.10、WebSockets和请求的异步处理。
2016年更新:
新宠儿是Kestrel。
Kestrel是微软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实现。不幸的是,它已被弃用,转而使用Kestrel。
编辑:* Kestrel的最新版本已经放弃了libuv,采用了托管的dotnet socket方法。这当然意味着Kestrel不再有本地依赖项。
https://katanaproject.codeplex.com/
请注意,它是完全开源的,采用Apache许可证。