example - remarks c#
¿Servidor web incorporado C#? (5)
En Java he podido incrustar * el servidor jetty en mis aplicaciones, pero ¿hay una tecnología de servidor embebido * equivalente para .Net?
El código abierto (FLOSS) sería preferido si es posible.
* por incrustado me refiero a una aplicación de servidor web liviana que se podría empaquetar con mi aplicación y ejecutar en la máquina de escritorio local de un usuario para proporcionar un servicio web localmente.
Actualización para 2016:
El nuevo chico de la cuadra es Kestrel.
Kestrel es un servidor web de código abierto que forma parte de la iniciativa ASP NET Core de Microsoft. Es un servidor web basado en eventos construido sobre libuv (básicamente, node.js
- js
+ .net
). Esto significa que debería ser fácilmente portátil entre diferentes sistemas operativos. Desafortunadamente, significa que requiere una dependencia nativa externa.
https://github.com/aspnet/KestrelHttpServer
Un proyecto anterior que hace esto es Nowin.
https://github.com/Bobris/Nowin/tree/master/Nowin
Esta es una implementación de Owin construida completamente dentro de .net. Desafortunadamente, ha sido desaprobado a favor de Kestrel.
Aquí hay otra alternativa que escribí el año pasado y me ha servido bien.
EmbedIO: https://github.com/unosquare/embedio
Lo uso principalmente para crear servicios RESTful en la Raspberry Pi (soft-float).
Edición: Código actualizado para Mono 3.10, soporte para WebSockets y manejo asíncrono de solicitudes.
El equivalente más cercano a Jetty que he encontrado hasta ahora es Nancy , que se describe como:
un marco ligero y de poca ceremonia para crear servicios basados en HTTP en .Net y Mono.
Nancy está diseñada para manejar las solicitudes DELETE, GET, HEAD, OPTIONS, POST, PUT y PATCH.
Nancy fue diseñada para no tener ninguna dependencia de los marcos existentes. Construido con el perfil de cliente de .NET Framework, Nancy se puede usar prácticamente en cualquier lugar, ya que es completamente independiente con sus propios objetos de solicitud y respuesta.
Uno de los conceptos centrales en Nancy es el anfitrión. Un host actúa como un adaptador para un entorno de alojamiento y Nancy, lo que permite a Nancy ejecutarse en tecnologías existentes como ASP.NET, WCF y OWIN, o integrarse en cualquier aplicación determinada.
Una opción aún más liviana es Kayak ( Actualización : el proyecto parece muerto a partir del 2014-01-18), que su documentación describe como:
Un servidor web simple. Escucha las conexiones, crea una representación de solicitudes en la memoria y le permite generar respuestas fácilmente. Puede ser utilizado en cualquier programa de C #. Su código carga Kayak en su espacio de proceso, ¡no al revés!
y tanto Nancy como Kayak tienen licencia MIT.
El que se usa con Visual Studio se llama cassini. Hay un buen derivado llamado UltiCassini .
La solución de Microsoft se llama Katana,
https://katanaproject.codeplex.com/
Tenga en cuenta que es completamente de código abierto, bajo la licencia de Apache.