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

4 comentarios:

Anónimo dijo...

donde estan las partes del codigo? no las veo, solo aparecen los espacios. :S

Viktor dijo...

las lineas de configuración te refieres??? si esas son yo las veo perfectamente.


Salu2

Anónimo dijo...

tengo una duda, no se si puedes ayudarme. Esta es la línea de código que tengo para ejecutarla en MONO, pero sigue sin funcionar. No se que malo tengo o si hay algo de más.

Page Language="VB" src="~/monoindex.aspx.vb" AutoEventWireup="false" CodeFile="~/monoindex.aspx.vb" Inherits="_Default"

pd:falta abrir y cerrarlo, pero el blog no me dejó ponerlas

Anónimo dijo...

Hola Viktor:
Sabes q yo también estoy trabajando con Mono pero solo con XSP y al momento de correr paginas aspx me da un error: HTTP 500 la verdad es q no se q mismo es....

Por favor será me puedes ayudar

Saludos Cordiales