在Java中,我已经能够在我的应用程序中嵌入* jetty服务器,但是.Net是否有等效的嵌入式*服务器技术?
如果可能的话,首选开源(FLOSS)。
* by embedded我指的是一个轻量级的Web服务器应用程序,可以与我的应用程序一起打包,并在用户的本地桌面计算机上运行,以便在本地提供Web服务。
答案 0 :(得分:22)
到目前为止,我发现的与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都获得麻省理工学院的许可。
答案 1 :(得分:11)
这是我去年写的另一个选择,并且很好地为我服务。
EmbedIO: https://github.com/unosquare/embedio
我主要用它来在Raspberry Pi(soft-float)上创建RESTful服务。
编辑:更新了Mono 3.10的代码,支持WebSockets和异步处理请求。
答案 2 :(得分:5)
2016年更新:
街区的新生儿 Kestrel。
Kestrel是一个开源Web服务器,是Microsoft的ASP NET Core计划的一部分。它是基于libuv构建的基于事件的网络服务器(基本上是node.js
- js
+ .net
)。这意味着它应该可以在不同的操作系统之间轻松移植。不幸的是,它确实意味着它需要外部本机依赖。
https://github.com/aspnet/KestrelHttpServer
执行此操作的旧项目是 Nowin
https://github.com/Bobris/Nowin/tree/master/Nowin
这是Owin完全在.net内构建的实现。不幸的是,它已被弃用赞成Kestrel。
答案 3 :(得分:3)
与Visual Studio一起使用的名为cassini。有一个很好的衍生物叫UltiCassini。
答案 4 :(得分:2)