Embedded C# web server? [closed]

2019-01-17 11:13发布

In Java I've been able to embed* the jetty server in my apps, but is there an equivalent embedded* server technology for .Net?

Open source (FLOSS) would be preferred if possible.

*by embedded I mean a lightweight web server app that could be packaged with my application and run on a user's local desktop machine to provide a web service locally.

5条回答
三岁会撩人
2楼-- · 2019-01-17 11:23

Here's another alternative I wrote last year and and has served me well.

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

I use it mostly to create RESTful services on the Raspberry Pi (soft-float).

Edit: Updated code for Mono 3.10, support for WebSockets, and Asynchronous handling of requests.

查看更多
贪生不怕死
3楼-- · 2019-01-17 11:25

Update for 2016:

The new kid on the block is Kestrel.

Kestrel is an open source web server that is a part of the ASP NET Core initiative by Microsoft. It is an event based webserver built upon libuv (it basically node.js - js + .net). This means that it should be easily portable between different operating system. Unfortunately, it does mean it requires an external native dependency.

https://github.com/aspnet/KestrelHttpServer

An older project that does this is Nowin

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

This is an implementation of Owin built entirely within .net. Unfortunately, it has been deprecated in favor for Kestrel.

查看更多
趁早两清
4楼-- · 2019-01-17 11:28

The solution from Microsoft itself is called Katana,

https://katanaproject.codeplex.com/

Note that it is fully open sourced, under Apache license.

查看更多
干净又极端
5楼-- · 2019-01-17 11:42

The one that is used with Visual Studio is called cassini. There is a good derivative called UltiCassini.

查看更多
beautiful°
6楼-- · 2019-01-17 11:44

The closest equivalent to Jetty I've found so far is Nancy, described as:

a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono.

Nancy is designed to handle DELETE, GET, HEAD, OPTIONS, POST, PUT and PATCH requests

Nancy was designed to not have any dependencies on existing frameworks. Built with the .NET framework client profile, Nancy can be used pretty much wherever you want to, since it’s completely self contained with it’s own request and response objects.

One of the core concepts in Nancy is hosts. A host acts as an adaptor for a hosting environment and Nancy, thus enabling Nancy to run on existing technologies such as ASP.NET, WCF and OWIN, or integrated in any given application.

An even more lightweight option is Kayak (Update: project looks dead as of 2014-01-18), which its documentation describes as:

a simple web server. It listens for connections, creates an in-memory representation of requests, and allows you to easily generate responses. It can be used in any C# program. Your code loads Kayak into its process space—not the other way around!

and both Nancy and Kayak are MIT licensed.

查看更多
登录 后发表回答