24 julio 2006

Soporte para paginas ASP.NET en Apache2

En este artículo expondré los pasos que seguí para instalar mono en Ubuntu Dapper con el respectivo soporte para el servidor web Apache2 para servir páginas ASP.NET

Nota: Evidentemente la instalación de todos los programas aca mencionados se realizó con el synaptic (la GUI del clásico apt-get)

Primeramente instale el paquete mono con todas sus dependencias, luego instale el paquete monodevelop con sus respectivas dependencias. Hasta aquí ya tengo instalado correctamente el entorno de programación de mono.

Ahora viene lo que realmente me interesaba, el tener soporte nativo para mis páginas ASP.NET bajo Apache2, para ello, debemos instalar mono-xsp, libapache2-mod-mono y todas las dependencias. También recomiendo instalar el archivo asp.net-examples los cuales son un conjunto de archivos de ASP.NET que nos servirán para montar nuestro módulo mod_mono y comprobar su correcto funcionamiento (En ubuntu dapper estos archivos se encuentran ubicado en /usr/share/asp.net-demos)

Ahora vamos a configurar el apache2 para que tenga soporte nativo a nuestras páginas de ASP.NET, para ello editamos el archivo /etc/apache2/apache2.conf y agregamos lo siguiente:

Include /etc/apache2/mod_mono.conf
Alias /test "/usr/share/asp.net-demos"
AddMonoApplications default "/test:/usr/share/asp.net-demos"

(Location /test)
SetHandler mono
(/Location)

OJO: CAMBIAR LOS PARÉNTESIS POR SIGNOS '<' '>' (SIN COMILLAS) PARA SU CORRECTO FUNCIONAMIENTO

la linea Include /etc/apache2/mod_mono.conf es la encargada de cargar el módulo mod_mono en nuestro apache2, luego creamos un enlace al directorio en el cual se encuentran los ejemplos de asp.net que descargamos en su momento y por último, creo un directorio en el cual tendré soporte nativo para mis aplicaciones ASP.NET

Para verificar que realmente tenemos soporte para páginas aspx abro el firefox y escribo: http://localhost/test/ y se debería abrir una página muy similar a esta:



Ahí están los ejemplos que instalamos en su momento, los podemos ejecutar y verán que funcionan perfecto. Ahora si quieren agregar un directorio aparte para servir sus páginas aspx, por ej. /home/viktor/www (mi caso particular) sólo deben agregar las lineas respectivas al archivo /etc/apache2/apache2.conf el cual quedaría de la siguiente manera:

Include /etc/apache2/mod_mono.conf
Alias /test "/usr/share/asp.net-demos"
Alias /www "/home/viktor/www"
AddMonoApplications default "/test:/usr/share/asp.net-demos"
AddMonoApplications default "/www:/home/viktor/www"

(Location /test)
SetHandler mono
(/Location)

(Location /www)
SetHandler mono
(/Location)

OJO: CAMBIAR LOS PARÉNTESIS POR SIGNOS '<' '>' (SIN COMILLAS) PARA SU CORRECTO FUNCIONAMIENTO


Espero que este tip le sea util en su momento.


Salu2 xD

21 comentarios:

Anónimo dijo...

Hola , interesante blog, me diste ganas de hacerme uno para ir documentando lo que hago
Pregunta.. instale mono con apache, quiero correr aplicaciones asp pero me da error.. mono es solo para aspx?
Saludos y suerte!
Seba

Viktor dijo...

Seba, mono es sólo para aspx, para correr páginas asp en apache debes de tener instalado otro módulo el cual no recuerdo su nombre en este momento, pero vamos q el tio google te puede dar respuesta.


Gracias por tus comentarios.

Anónimo dijo...

hola victor, me pregunto si es posible realizar o mismo pero para ubuntu edgy, lo que sucede es q he intentado hacerlo pero tengo problemas con las versiones de los paquetes.

Viktor dijo...

joker:

yo trate de hacer lo mismo en ubuntu edgy y no me funcionó ya que hay un bug con el archivo libapache2 si no mal recuerdo y hasta hace una semana atras aun no lo habian reparado :(


Salu2

Anónimo dijo...
Este blog ha sido eliminado por un administrador de blog.
Anónimo dijo...

Tengo Kubuntu 7.04 y apache con mod_mono pero no he podido publlicar un sitio en asp.net, segui al pie de la letra las instrucciones pero nada.
saludos

Anónimo dijo...

Yo tampoco he conseguido ejecutar aspx. Creo que es que el código está en visual Basic. Funciona Mono con Apache, aspx y windows?
Alguien lo ha probado

PaK0s dijo...

utiliza & g t ; y & g l ; para los > y el ≷ para que tu blog que de mas claro

PaK0s dijo...

perdon es
&gt; para el > y
&lg; para el < para que publiques cuando necesites los signos

PaK0s dijo...

otra vez... me equiboque es &lt; para el <

Unknown dijo...

Hola, espero que este comentario (que es mas una voz de auxilio), pueda ser visto, esoty tratando de hacer qe Apache2 muestre mi aplicación hecha en ASP.NET, pero no lo he logrado y he adicionado la información, tal como se muestra en los tutoriales.
Cuando trato de acceder desde el navegador a mi aplicación, me muestra una ventana donde me pregunta si deseo abrir o guardar el archivo. :(
A qué se deberá esto?? :'(

Gracias

Viktor dijo...

Yoana, el problema que mencionas se debe a que el módulo de apache está mal configurado, esta bien instalado pero existe algún problema en la configuración.

En que distro estas trabajando??? con que versión de asp.net estas, 1.1 ó 2.0???

Yo he tenido problemas para dejar nativo el soporte sólo para 2.0 en debian así que he estado viendo ese tema estos días, cuando tenga algo más elaborado publicaré un articulo en mi blog.


Saludos.

Anónimo dijo...

Hola Viktor

Estoy trabajando con Suse Linux 10.1, con la versión 1.0 de ASP.NET.

La verdad no soy experta en apache, cuando hablas del módulo de apache, te refieres al archivos configuración de éste???

Espero me puedas aclarar la duda

Gracias

Yoana

Unknown dijo...

Hola Viktor, de nuevo con mis dudas y solicitando ayuda.

Mira, resulta que ya pude lograr que apache me reconociera páginas con extensión aspx. Pero resulta que ahora tengo un problema, yo estoy utilizando archivos aspz y aspx.cs en mi aplicación, pues bien, resulta que cuando trato de ejecutar una operación con mis archivos me muestra este error.

Server error in '/Formularios' application
------------------------------
*Description: *Error processing request.

*Error Message: *HTTP 500.
*Stack Trace: *

System.NullReferenceException: Object reference not set to an instance
of an object
at ..........

Entonces no se si se debe hacer alguna configuración en el path para que el servidor Apache me reconozca estos archivos.

Gracias por tu ayuda

el perucho dijo...

Hey Victor saludos de nuevo mi hermano.

Esta semana es estado instalando apache, a mode de prueba y conocer un poco mas este servidor web y realmente me sorprendo.

Instale mono y pude configurar el servidor con mono xsp, para que ejecutara las paginas .ASPX, - por supuesto despues de un largo trabajo, despues que sabes las cosas son faciles -. Vi que el grupo de apache creeo un modulo para apliciones framework, para dar soporte a paginas .aspx de Microsoft Framework, pero actualmente esta retirado.

Mi Pregunta es la siguiente, se puede montar paginas aspx sin montar mono.

Saludos.

el perucho dijo...

Victor Saludos de Nuevo
Una ultima preguntica, que IDE o Editor utilizas para mono, yo realmente me baje el Shardeveloper y deja mucho que desear con respecto a Visual Studio 2005.

Buno saludos

Viktor dijo...

Perucho:

el ide para mono se llama monodevelop. Hasta donde sé, si es necesario instalar mono para poder trabajar con páginas aspx. Si te das cuenta, al instalar el mod_mono a través de apt (debian) o yast (opensuse) inmediatamente aparece como dependencia mono y otras librerias.


Salu2

nachoe40 dijo...

Hola, yo también tengo el problema de que el navegador intenta descargarme los archivos aspx. Estoy usando apache2 y mod_mono2, en Ubuntu Dapper. No se a que se puede deber este problema.
Saludos y gracias
Nacho

nachoe40 dijo...

(¿Yoana por casualidad te acordas como hiciste para que acceda a las paginas aspx?)

Anónimo dijo...

Hola Viktor..Todo bien con tu explicacion salvo un pequenho detalle, que era la razon por la cual no me funcionaba.
El problema estaba en el include, tu tienes esta ruta
Include /etc/apache2/mod_mono.conf
en mi distro ubuntu 7.10 tengo esta
Include /etc/apache2/mods-enabled/mod_mono.conf
arregle lo de la ruta y todo solucionado.

Anónimo dijo...

Hola, yo tengo el mismo problema que Yoana, cuando intento abrir el sitio en el navegador, me da la opción de abrir o guardar el archivo index.aspx
Alguien sabe cual es el problema y como puedo solucionar esto?
Muchas gracias.