17 agosto 2006

Problema con páginas aspx en mono

Después de haber realizado la configuración del módulo mod_mono en mi apache para asi poder dar soporte a mis páginas aspx y probar los ejemplos que trae el XSP, todo funcionaba perfecto, asi que me dispuse a crear una pequeña aplicación en el Visual Studio 2003 yy luego portarla a linux. Lo primero que ocurrió fue lo obvio, trate de ejecutar la página y no funcionó, asi que se me ocurrió la idea de abrir el proyecto generado con el Visual Studio 2003 a través del MonoDevelop para si poder compilarlo, lo compilé y perfecto, funcionó sin ningún problema.

Después de estar un poco alejado del tema, ayer trate de ejecutar nuevamente mi página y no funcionó, lo volvi a compilar con el MonoDevelop y nada, siempre el mismo error.

El error que me marcaba era con el Codebehind de mi página aspx, busque info en la web y varios usuarios tenían el mismo problema pero nadie colocaba la solución, hasta que al fin hoy dí con ella.

Resulta que el Codebehind lo utiliza el Visual Studio en modo de diseño pero no es una etiqueta oficial y válida de ASP.NET, por eso el mono me tiraba el error.

Lo único que hay que hacer es cambiar la palabra Codebehind por src en el inicio de todas nuestras páginas aspx generadas con el visual studio y así no tendremos más problemas.

La línea original creada al momento de crear la página aspx en el Visual Studio es:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="monto.WebForm1" %>

Para que funcione en mono sin problemas debe quedar asi:

<%@ Page language="c#" src="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="monto.WebForm1" %>


Espero que a alguien le sea útil este pequeño aporte.


Salu2