Вопрос

Есть ли у кого-нибудь информация о том, как текущие версии ASP.NET MVC (предварительная версия 5) работают на Mono 2.0?Была информация о старых версиях (Preview 2, может быть, Preview 3), но я не видел подробностей о том, как заставить Preview 5 работать.

А Дорожная карта монопроекта указывает ASP.NET 3.5 для Mono 2.4 (в следующем году).Есть идеи, как сделать это полезным до этого?

Более подробная информация:Базовый шаблон MVC Preview 5, похоже, работает, если я избегаю корневого каталога.Если я запрошу рут, я получаю:

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
Это было полезно?

Решение

Возможно, в RewritePath to / есть какая-то ошибка, поэтому просто избегайте этого.Изменение RewritePath(Request.ApplicationPath) на:

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

Кажется, проблема решена, и, по крайней мере, демо-версия пока работает.

Другие советы

Asp.Net MVC 1.0 будет работать с веткой mono 2.4, но вам все равно придется исправить RewritePath при загрузке страницы default.aspx.cs.

Вы используете Mono из SVN или стабильную версию?Какой веб-сервер вы используете?Какая операционная система?Есть ли у вас правила перезаписи на вашем веб-сервере?

Я могу запустить предварительную версию 4 в Linux с помощью метода page_load в default.aspx.cs.

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

Иногда мне это тоже нужно в Windows.Я еще не тестировал версию 5 в Linux, поэтому она может не работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top