Pregunta

¿Alguien tiene alguna información sobre cómo hacer que las versiones actuales de ASP.NET MVC (Vista previa 5) funcionen en Mono 2.0? Había información sobre las versiones anteriores (Vista previa 2, quizás Vista previa 3), pero no he visto detalles sobre cómo hacer que la Vista previa 5 realmente funcione.

El Hoja de ruta del proyecto Mono indica ASP.NET 3.5 para Mono 2.4 (el próximo año). ¿Alguna idea sobre cómo hacer esto útil antes de eso?

Más detalles: La plantilla básica de MVC Preview 5 parece funcionar, siempre que evite el directorio raíz. Si solicito la raíz, obtengo:

Server Error in '/' Application
The virtual path '' maps to another application.

Description: HTTP 500. Error processing request.

Stack Trace:

System.Web.HttpException: The virtual path '' maps to another application.
  at System.Web.HttpContext.RewritePath (System.String filePath, System.String pathInfo, System.String queryString, Boolean setClientFilePath) [0x00000] 
  at System.Web.HttpContext.RewritePath (System.String path, Boolean rebaseClientPath) [0x00000] 
  at System.Web.HttpContext.RewritePath (System.String path) [0x00000] 
  at MvcApplication1._Default.Page_Load (System.Object sender, System.EventArgs e) [0x00000] 
  at System.Web.UI.Control.OnLoad (System.EventArgs e) [0x00000] 
  at System.Web.UI.Control.LoadRecursive () [0x00000] 
  at System.Web.UI.Page.ProcessLoad () [0x00000] 
  at System.Web.UI.Page.ProcessPostData () [0x00000] 
  at System.Web.UI.Page.InternalProcessRequest () [0x00000] 
  at System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) [0x00000] 

Version information: Mono Version: 2.0.50727.42; ASP.NET Version: 2.0.50727.42
¿Fue útil?

Solución

Bueno, un potencial es que RewritePath tenga / tenga algún tipo de error, así que evítelo. Cambiar RewritePath (Request.ApplicationPath) a:

HttpContext.Current.RewritePath("/Home/Index");

Parece solucionar el problema, y ??al menos la demostración funciona hasta ahora.

Otros consejos

Asp.Net MVC 1.0 funcionará con la rama 2.4 de mono pero aún tendrá que arreglar RewritePath en la carga de página de default.aspx.cs

¿Está utilizando Mono desde svn o estable? ¿Qué tipo de servidor web estás usando? ¿Qué tipo de sistema operativo? ¿Tiene reglas de reescritura en su servidor web?

Puedo ejecutar la vista previa 4 en Linux con esto en el método page_load en default.aspx.cs

HttpContext.Current.RewritePath(Request.ApplicationPath);
 ((IHttpHandler)new MvcHttpHandler()).ProcessRequest(HttpContext.Current);

A veces también necesito eso en Windows. Todavía no probé la versión 5 en Linux, por lo que podría no funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top