2009-07-12 25 views
84

Para un desarrollador con un fondo Java, estoy interesado en explorar el desarrollo de software usando las herramientas/plataforma ASP.NET también.Ejecutar ASP.Net en un servidor basado en Linux

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

Pregunta: ¿Se puede ejecutar una aplicación web .NET en un servidor basado en Linux? Teniendo en cuenta el escenario de no poder usar un servidor de Windows para alojar una aplicación web.

Respuesta

61

depende de lo tecnologías específicas .NET que está utilizando. El Mono Project proporciona un módulo Apache (mod_mono) para ejecutar sitios ASP.NET, y por lo que veo, funciona bien.

Mono no es compatible con todas las API de .NET, especialmente WPF (y posiblemente también WCF, no lo recuerdo), pero proporciona un buen soporte para mucho más del framework.

Si está empezando desde el principio y desea centrarse especialmente en servidores que no son de Windows, entonces asegurar que su proyecto funcione con Mono sería un buen objetivo. Sin embargo, si necesita APIs particulares o funciones de idioma que no son compatibles con Mono, necesitará usar un servidor de Windows para la implementación. Es una elección arquitectónica/de tiempo de diseño que debe tener prioridad.

+2

fyi, el mantenedor del proyecto mono tiene una respuesta en esta pregunta también. –

+7

Si no está familiarizado con el proyecto Mono y sus mantenedores, [esta respuesta] (http://stackoverflow.com/a/1163321/5296) es a la que se refiere Joel. – alastairs

+0

Tengo una página 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? –

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 lo salvará de un administrador deficiente.

Supongo que mi "mejor práctica" para depilar una aplicación ASP.NET sería usar Windows Server 2008 (probablemente una edición web). Y contrata a un buen administrador.

+0

muchas gracias – Anand

+0

¿qué ocurre con el problema de los antivirus ... windows requiere software antivirus ... creo que aumentará el costo del área del servidor ... estoy en lo cierto? – Anand

+0

La mayoría de las ediciones de "servidores" 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" diciendo que Windows es más vulnerable al ataque, 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 SO se pueden asegurar fácilmente. En la actualidad, los puntos de ataque no son el SO o el software del servidor web, sino las aplicaciones mismas.

+0

¿te refieres a ... los servidores de Linux también pueden ser vulnerables a los ataques? – Anand

+2

cualquier cosa podría ser vulnerable. nada es seguro a menos que esté apagado y desconectado de la red – blowdart

+0

@blowdart, ahora eche un vistazo en facebook ejecute en apache http://www.makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained/ – Adrian

5

Sí podemos. familiarícese con Mono Project y lea this article para comenzar.

+0

¿Todas las bibliotecas se establecerán correctamente en ** formularios web ASP.Net ** con 'Mono' en el entorno ** Linux **? – Raja

2

hoy en día .Net se ejecuta en múltiples plataformas, como Linux, Mac OS etc. pero mono no es totalmente independiente de la plataforma, ya que para implementar .NET en otro operativo requerido terceros software.so no es como plataforma java independiente.

Mono se está ejecutando en una plataforma diferente, debido a JIT hay en diferentes sistemas operativos.

Mono no es totalmente exitoso en la luz de la luna (luz plateada en .NET). No solo está en curso la investigación.

Mono usa el servidor XSP2 o Apache. algunas de las grandes compañías están utilizando este proyecto. Algunos proyectos robóticos también se ejecutan en mono.

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

1

El proyecto Mono es su mejor opción. Sin embargo, tiene muchos inconvenientes (como compatibilidad API incompleta 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 caiga en Mono al usar sus derechos de patente, pero esa es otra historia).

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

10

puedo hablar por experiencia. Incluso si su sitio web ASP.net solo usa bibliotecas .NET soportadas por Mono, tendrá dificultades para ejecutarlo si está 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 permisos de archivos y manejo de errores y todas las pequeñas cosas que entran en un gran sitio web (Prepárese para pasar mucho tiempo haciendo preguntas sobre serverfault :))

El problema es que muchas personas no usan Mono para sitios web ASP.net y por lo tanto no hay tanta gente que informe errores así muchas cosas que son errores menores no se corrigen durante mucho tiempo.

+0

Admito que tenía los mismos pensamientos y me enfrenté a mí mismo en un proyecto real. –

77

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

Microsoft ha lanzado oficialmente asp.net vnext y es de código abierto e implementable tanto para Linux como para Mac. Todavía es bastante nuevo, pero se basa en las últimas versiones de mono y por lo tanto actualmente necesita que compile el mono-framework, pero a tiempo sospecho que será más fácil acceder a él ya que varias versiones de Linux liberan versiones actualizadas de mono. This is a how to setup guide

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

actualización de ASP.NET NÚCLEO 11/10/2017

+6

ahora conocido como '.NET Core' y más estable – GibralterTop

3

dotnet es la sede 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.

Esto puede ser un gran comienzo para soportar Linux.

10

Ahora puede publicar la aplicación ASP.NET 5 en Docker en Linux con Visual Studio. Ver el post de abajo de Scott Haselman

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

+0

¿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? –

+1

y la construcción de contenedores docker para Windows se ejecuta solo en el servidor de Windows 16 por lo que no es relevante para la pregunta – jocelyn

Cuestiones relacionadas