Corriendo ASP.Net en un servidor basado en Linux


Para un desarrollador con un fondo Java, estoy interesado en explorar el desarrollo de software utilizando el ASP.NET herramientas / plataforma también.

Aplicaciones web Java (.jsp y servlets) pueden ejecutarse en muchas plataformas de servidores.

Pregunta : ¿Podrá ejecutarse una aplicación web. NET en un servidor basado en Linux? Teniendo en cuenta el escenario de no ser capaz de utilizar un servidor de Windows para alojar una aplicación web.

Author: Anand, 2009-07-12

13 answers

Depende de las tecnologías.NET específicas que esté utilizando. El Proyecto Mono proporciona un módulo Apache (mod_mono) para ejecutar ASP.NET sitios, y de lo que deduzco que funciona bien.

Mono no admite todas las API de.NET, sin embargo, notablemente WPF (y posiblemente WCF también, no recuerdo), pero proporciona un buen soporte para mucho más del marco.

Si está comenzando desde cero y desea dirigirse particularmente a servidores que no son de Windows, asegúrese de que el proyecto trabaja con Mono sería un buen objetivo. Sin embargo, si necesita API o características de idioma particulares que no son compatibles con Mono, deberá usar un servidor de Windows para la implementación. Es una elección de diseño/arquitectura que debe tomar por adelantado.

 62
Author: alastairs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-12 15:08:44

Así que sé que esta es una pregunta antigua, pero creo que podría soportar una respuesta actualizada.

Microsoft ha lanzado oficialmente asp.net vnext y su código abierto y desplegable tanto para Linux como para Mac. Su todo todavía bastante nuevo, pero se basa en las últimas versiones de mono y por lo tanto actualmente necesita para compilar el mono-framework pero con el tiempo sospecho que será más fácil de acceder como varias distribuciones de Linux liberar versiones actualizadas de mono. Este es un cómo configurar guía

Esta información puede ser algo volátil y con actualizaciones se debe a cambios.

Actualizar ASP.NET CORE 11/10/2017

 78
Author: Terrance,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-10 14:18:41

Es posible que desee considerar esta guía que ayuda a los desarrolladores de Windows a portar su código a Mono / Linux:

Guía: Porting ASP.NET Aplicaciones-Mono

 22
Author: miguel.de.icaza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-11 04:17:39

Puedo hablar por experiencia. Incluso si su ASP.net el sitio web solo utiliza bibliotecas. NET soportadas por Mono que va a tener un tiempo difícil conseguir que se ejecute si su algo más allá de Hello World.

No tendrá que reescribir mucho código, pero pasará horas/días/semanas lidiando con pequeños problemas con la configuración de mod_mono/xsp/apache y los permisos de archivo y el manejo de errores y todas las pequeñas cosas que entran en un sitio web grande. (Esté preparado para pasar mucho tiempo haciendo preguntas sobre serverfault :))

El problema es que mucha gente no usa Mono para ASP.net sitios web y por lo que no hay tanta gente reportando errores por lo que un montón de cosas que son errores menores no se arreglan durante mucho tiempo.

 11
Author: thelsdj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-22 06:31:42

Ahora puedes publicar ASP.NET 5 aplicación a Docker en Linux con Visual Studio. Ver el siguiente post de Scott Haselman

Http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx

 10
Author: Tepu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-21 13:59:36

Dado que las tecnologías evolucionan y esta pregunta ocupa el primer lugar en Google, necesitamos incluir más allá del mono el nuevo asp.net core, que es una reescritura completa de asp.net para ejecutar para producción en Linux y Windows y para desarrollo para Linux, Windows y Mac :

Puede desarrollar y ejecutar su ASP.NET Aplicaciones principales multiplataforma en Windows, Mac y Linux. ASP.NET Core es de código abierto en GitHub.

 10
Author: mqueirozcorreia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-13 11:23:24

Sí podemos. familiarícese con Mono Project y lea este artículo para comenzar.

 5
Author: dde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-12 15:09:38

Para ASP.NET en Linux, echa un vistazo a Mono .

Dicho esto, miles de sitios se ejecutan en Windows Server sin ningún problema. Un servidor mal configurado con cualquier sistema operativo será vulnerable; Linux no lo salvará de un administrador pobre.

Así que supongo que mi "mejor práctica" para deplying an ASP.NET aplicación sería utilizar Windows Server 2008 (probable edición Web). Y contratar a un buen administrador.

 4
Author: dahlbyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-12 15:07:20

Puede usar Mono para ejecutar ASP.NET aplicaciones en Apache / Linux, sin embargo, tiene un subconjunto limitado de lo que puede hacer bajo Windows. En cuanto a" ellos " diciendo que Windows es más vulnerable a los ataques, no es cierto. IIS ha tenido menos problemas de seguridad en los últimos años que Apache, pero en cualquier caso todo se debe a la administración de las cajas - ambos sistemas operativos se pueden asegurar fácilmente. En estos días, los puntos de ataque no son el sistema operativo o el software del servidor web, sino las aplicaciones ellos mismos.

 4
Author: blowdart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-12 15:07:37

Dotnet es el hogar oficial de.NET en GitHub. Es un gran punto de partida para encontrar muchos proyectos de. NET OSS de Microsoft y la comunidad, incluidos muchos que forman parte de.NET Foundation.

Este puede ser un gran comienzo para soportar Linux.

 3
Author: Kurkula,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-23 22:50:38

Ahora. Net se ejecuta en múltiples plataformas, como linux, Mac os, etc. pero mono no es completamente independiente de la plataforma, Porque para implementar. NET en otro sistema operativo es necesario terceros software.so no es independiente de la plataforma Java.

Mono se está ejecutando en diferentes plataformas ,debido a que JIT está allí en diferentes sistemas operativos.

Mono no es un éxito completo en moonlight(silver light en .NET).No solo se está investigando.

Mono utiliza el servidor XSP2 o apache . algunas de las grandes empresas están utilizando este proyecto, algunos de los proyectos robóticos también se ejecutan en mono.

Para más detalles http://www.mono-project.com/Main_Page .

 2
Author: anishMarokey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-12 18:12:39

Existe el proyecto Mono de Novell que te permitirá ejecutar ASP.Net en Apache.

Http://www.mono-project.com/Main_Page

 1
Author: Jared,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-12 15:08:03

El proyecto Mono es tu mejor opción. Sin embargo, tiene muchos escollos (como el soporte incompleto de API en algunas áreas), y es legalmente gris (personas como Richard Stallman han ridiculizado el uso de Mono debido a la posibilidad de que Microsoft caiga en Mono mediante el uso de sus derechos de patente, pero esa es otra historia).

De todos modos, Apache soporta. NET/Mono a través de un módulo, pero la última vez que revisé la versión suministrada con Debian, solo daba soporte al lenguaje Perl; no puedo decir si ha cambiado desde entonces, tal vez alguien más pueda corregirme allí.

 1
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-12 19:21:54