ASP.NET y Apache 2

De WikiGlib

Tabla de contenidos

Introducción

Mod_mono es un modulo que proporciona soporte de ASP.NET 1.1 y 2.0 para el servidor web Apache.

El modulo envía todas las peticiones a un programa externo “mod-mono-server” para que procese dichas peticiones.

La comunicación entre el modulo de Apache y mod-mono-server es establecida a traves de sockets (Unix y TCP).

Requerimientos

para soportar aplicaciones web escritas en ASP.NET con C#:

  • Mono
  • xsp 1.9. es un pequeño servidor para probar el desarrollo de ASP.NET 1.1 y 2.0
  • mod_mono 1.9

Compilar xsp

  • ./configure --prefix=/usr
  • make
  • make install (con privilegios de root)

Compilar mod_mono

  • ./configure --prefix=/usr
  • make
  • make install (con privilegios de root)

nota: en este punto vamos a necesitar las librerías de apache2 y herramientas como APR(Apache Portable Runtime),de otro forma no pueden compilar el modulo.

Configuración del modulo en Apache2

ASP.NET 1.1 y 2.0

Incluir en el archivo de configuración principal de Apache el siguiente archivo: mod_mono.conf

Include /etc/apache2/mod_mono.conf

contenido del archivo mod_mono.conf:

<IfModule !mod_mono.c>
   LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so
   AddType application/x-asp-net .aspx
   AddType application/x-asp-net .asmx
   AddType application/x-asp-net .ashx
   AddType application/x-asp-net .asax
   AddType application/x-asp-net .ascx
   AddType application/x-asp-net .soap
   AddType application/x-asp-net .rem
   AddType application/x-asp-net .axd
   AddType application/x-asp-net .cs
   AddType application/x-asp-net .config
   AddType application/x-asp-net .Config
   AddType application/x-asp-net .dll
   DirectoryIndex index.aspx
   DirectoryIndex Default.aspx
   DirectoryIndex default.aspx
</IfModule>

nota: este archivo se genera automáticamente al instalar mod_mono.

Archivo de configuracion de su sitio web

el siguiente paso es crear un archivo con su configuración de su sitio web: por ejemplo mywebsites_aspnet2.conf e incluirlo en Apache 2

Include /etc/apache2/mywebsites_aspnet2.conf

contenido del archivo mywebsites_aspnet2.conf:

Alias /test "/home/jacob/Projects/aspnet1.1_2.0/helloworld"
AddMonoApplications default "/test:/home/jacob/Projects/aspnet1.1_2.0/helloworld"
MonoServerPath default /usr/bin/mod-mono-server2
<Location /test>
  SetHandler mono
</Location>

El código fuente de la aplicación web ASP.NET

helloworld.aspx

<% @Page Language="C#" Inherits="helloworld" Codefile="helloworld.aspx.cs" %>
<html>
       <head>
               <title>Hola Mundo desde ASP.NET 2.0</title>
       </head>
       <body>
               <form id="frmMain" runat="server">
                       <asp:Button id="btnShowHello"
                                   runat="server"
                                   OnClick="OnShowHello"
                                   Text="Clic Aqui" />
               </form>
       </body>
</html>

helloworld.aspx.cs

using System;
using System.Web;
using System.Web.UI;
public partial class helloworld : Page  {
       string message = "Hello World GLIB";
       void Page_Load(object sender, EventArgs e)
       {
               Response.Write("Running ASP.NET 2.0");
       }
       protected void OnShowHello(object o, EventArgs e)
       {
               Response.Write(message);
       }
}


Reiniciar Apache 2

solo resta reiniciar el servidor web Apache, en Ubuntu lo pueden hacer de la siguiente manera:

sudo /etc/init.d/apache2 restart

Prueba en navegador web

y a continuación abrir su navegador web y escribir la siguiente url:

http://127.0.0.1/test/helloworld.aspx

et voila!!!

Herramientas personales