嵌入式C#Web服务器?

时间:2010-11-24 16:05:02

标签: c# .net embedded-server

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

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

* by embedded我指的是一个轻量级的Web服务器应用程序,可以与我的应用程序一起打包,并在用户的本地桌面计算机上运行,​​以便在本地提供Web服务。

5 个答案:

答案 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)

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

https://katanaproject.codeplex.com/

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