Embedded C# web server? [closed]

喜你入骨 提交于 2019-11-27 01:30:44

问题


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.


回答1:


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.




回答2:


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:


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:


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




回答5:


The solution from Microsoft itself is called Katana,

https://katanaproject.codeplex.com/

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



来源:https://stackoverflow.com/questions/4268814/embedded-c-sharp-web-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!