在 Java 中,我已经能够在我的应用程序中嵌入 * jetty服务器,但是对于 .Net 是否有等效的嵌入 * 服务器技术?
如果可能的话,开源(FLOSS)将是首选。
*嵌入式是指可以与我的应用程序一起打包并在用户的本地桌面计算机上运行以在本地提供 Web 服务的轻量级 Web 服务器应用程序。
在 Java 中,我已经能够在我的应用程序中嵌入 * jetty服务器,但是对于 .Net 是否有等效的嵌入 * 服务器技术?
如果可能的话,开源(FLOSS)将是首选。
*嵌入式是指可以与我的应用程序一起打包并在用户的本地桌面计算机上运行以在本地提供 Web 服务的轻量级 Web 服务器应用程序。
到目前为止,我发现的与 Jetty 最接近的是Nancy,描述为:
一个轻量级、低俗的框架,用于在 .Net 和 Mono 上构建基于 HTTP 的服务。
Nancy 旨在处理 DELETE、GET、HEAD、OPTIONS、POST、PUT 和 PATCH 请求
Nancy 被设计为不依赖于现有框架。Nancy 使用 .NET 框架客户端配置文件构建,几乎可以在任何您想要的地方使用,因为它完全独立于自己的请求和响应对象。
Nancy 的核心概念之一是主机。主机充当宿主环境和 Nancy 的适配器,从而使 Nancy 能够在现有技术(如 ASP.NET、WCF 和 OWIN)上运行,或集成到任何给定的应用程序中。
一个更轻量级的选项是Kayak(更新:项目在 2014-01-18 时看起来已经死了),其文档描述为:
一个简单的网络服务器。它侦听连接,创建请求的内存表示,并允许您轻松生成响应。它可以在任何 C# 程序中使用。您的代码将 Kayak 加载到其进程空间中,而不是相反!
Nancy 和 Kayak 都获得了麻省理工学院的许可。
这是我去年写的另一种选择,并且对我很有帮助。
嵌入IO: https ://github.com/unosquare/embedio
我主要使用它在 Raspberry Pi(软浮点)上创建 RESTful 服务。
编辑:更新了 Mono 3.10 的代码,支持 WebSockets 和异步处理请求。
2016 年更新:
街区里的新孩子是红隼。
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
这是完全在 .net 中构建的 Owin 实现。不幸的是,它已被 Kestrel 弃用。
与 Visual Studio 一起使用的一种称为 cassini。有一个很好的衍生物叫做UltiCassini。