Ejecutando ASP.Net en un servidor basado en Linux

89

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

Las aplicaciones web Java (.jsp y servlets) pueden ejecutarse en muchas plataformas de servidor.

Pregunta : ¿Se podrá ejecutar una aplicación web .NET en un servidor basado en Linux? Considerando el escenario de no poder utilizar un servidor Windows para alojar una aplicación web.

Anand
fuente

Respuestas:

69

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

Sin embargo, Mono no es compatible con todas las API de .NET, especialmente WPF (y posiblemente WCF también, no lo recuerdo), pero proporciona un buen soporte para muchas otras cosas del marco.

Si está comenzando desde cero y particularmente desea apuntar a servidores que no son de Windows, entonces asegurarse de que su proyecto funcione con Mono sería un buen objetivo. Sin embargo, si necesita determinadas API o funciones de lenguaje que no son compatibles con Mono, deberá utilizar un servidor Windows para la implementación. Es una elección arquitectónica / de tiempo de diseño que debe tomar la delantera.

alastairs
fuente
3
Para su información, el encargado del proyecto mono también tiene una respuesta en esta pregunta.
Joel Coehoorn
8
Si no está familiarizado con el proyecto Mono y sus mantenedores, esta respuesta es a la que se refiere Joel.
alastairs
Tengo una página de asp.net que quiero integrar con el sitio web principal de php en un servidor Linux. ¿Es posible? De hecho, ¿es posible tener php y asp.net en un mismo servidor linux?
Hosein Aqajani
86

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

Microsoft ha lanzado oficialmente asp.net vnext y su código abierto y se puede implementar tanto en Linux como en Mac. Todo sigue siendo bastante nuevo, pero se basa en las últimas versiones de mono y, por lo tanto, actualmente necesita que lo compile, mono-frameworkpero con el tiempo sospecho que será más fácil acceder a él ya que varias distribuciones de Linux lanzan versiones actualizadas de mono. Esta es una guía de cómo configurar

Esta información puede ser algo volátil y con actualizaciones debe cambiar.

Actualizar ASP.NET CORE 11/10/2017

Terrance
fuente
A día de hoy, ¿qué servidores web Linux son compatibles con ASP.NET Core?
MrCalvin
12

Puedo hablar por experiencia. Incluso si su sitio web ASP.net solo usa bibliotecas .NET compatibles con Mono, tendrá dificultades para ejecutarlo si es algo más allá de Hello World.

No tendrá que volver a escribir 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 archivos 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 la falla del servidor :))

El problema es que mucha gente no usa Mono para los sitios web de ASP.net y, por lo tanto, no hay tanta gente que informe de errores, por lo que muchas cosas que son errores menores no se solucionan durante mucho tiempo.

thelsdj
fuente
Admito que estaba teniendo los mismos pensamientos y me enfrenté a eso en un proyecto real.
Eslam Hamouda
10

Ahora puede publicar la aplicación ASP.NET 5 en Docker en Linux con Visual Studio. Vea la publicación a continuación de Scott Haselman

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

Tepu
fuente
¿No hay ningún servidor web de producción que funcione con ASP.NET 5, excepto Kestrel, que es solo un servidor de desarrollo? ¿Cómo es esta una opción válida sin forma de alojar un sitio web ASP.NET en Linux?
Chris Hawkes
1
y contenedores ventana acoplable de construcción para las ventanas sólo se ejecutan en el servidor de Windows 16, de modo que no es relevante para la cuestión
Jocelyn
5

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

dde
fuente
Will todas las bibliotecas establecidas correctamente en los formularios web ASP.Net con Monoen Linux medio ambiente?
Raja
4

Para ASP.NET en Linux, consulte 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 te salvará de un mal administrador.

Así que supongo que mi "mejor práctica" para implementar una aplicación ASP.NET sería utilizar Windows Server 2008 (probablemente edición Web). Y contrate a un buen administrador.

Dalbyk
fuente
¿Qué pasa con el problema del antivirus ... Windows requiere software antivirus ... Creo que eso aumentará el costo del área del lado del servidor ... estoy en lo cierto?
Anand
La mayoría de las ediciones de "servidor" de productos antivirus son más caras que sus ediciones de "escritorio", a menudo varias veces más, principalmente debido al uso esperado. Recomendaría AVG (www.avg.com), ESET (www.eset.com) o Computer Associates (www.ca.com).
devstuff
4

Puede usar Mono para ejecutar aplicaciones ASP.NET en Apache / Linux, sin embargo, tiene un subconjunto limitado de lo que puede hacer en Windows. En cuanto a "ellos" que dicen 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 depende de la administración de las cajas: ambos sistemas operativos se pueden proteger fácilmente. En estos días, los puntos de ataque no son el sistema operativo o el software del servidor web, sino las aplicaciones mismas.

soplar el dardo
fuente
3
cualquier cosa podría ser vulnerable. nada es seguro a menos que esté apagado y desconectado de la red
blowdart
@blowdart, ahora mismo eche un vistazo a facebook ejecutar en apache makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained
Anirudha Gupta
3

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

Este puede ser un gran comienzo para admitir Linux.

Kurkula
fuente
2

Hoy en día .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 se requiere software de terceros, por lo que no es como una plataforma java independiente.

Mono se ejecuta en una plataforma diferente, porque JIT está en diferentes sistemas operativos.

Mono no es un éxito total a la luz de la luna (luz plateada en .NET). No solo se están realizando investigaciones.

Mono usa un 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 obtener más detalles, visite http://www.mono-project.com/Main_Page .

anishMarokey
fuente
1

El proyecto Mono es tu mejor opción. Sin embargo, tiene muchas trampas (como el soporte de API incompleto en algunas áreas) y es legalmente gris (personas como Richard Stallman se han burlado del uso de Mono debido a la posibilidad de que Microsoft se enfrente a Mono usando 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 verifiqué la versión suministrada con Debian, solo ofrecía soporte para el lenguaje Perl; No puedo decir si ha cambiado desde entonces, tal vez alguien más pueda corregirme allí.

Ben
fuente