10

有没有人有任何关于让当前版本的 ASP.NET MVC (Preview 5) 在 Mono 2.0 上工作的信息?有关于旧版本的信息(预览 2,也许是预览 3),但我没有看到有关使预览 5 实际工作的详细信息。

Mono 项目路线图表明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
4

3 回答 3

11

一个可能是 RewritePath to / 有某种错误,所以避免这种情况。将 RewritePath(Request.ApplicationPath) 更改为:

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

似乎解决了这个问题,至少到目前为止演示工作。

于 2008-10-14T19:58:26.113 回答
4

Asp.Net MVC 1.0 将与 mono 的 2.4 分支一起使用,但您仍需要在 default.aspx.cs 的页面加载中修复 RewritePath

于 2009-03-23T12:44:46.527 回答
1

您使用的是来自 svn 的 Mono 还是稳定版?您使用的是哪种网络服务器?什么样的操作系统?您的网络服务器中有重写规则吗?

我可以使用 default.aspx.cs 的 page_load 方法在 Linux 中运行预览 4

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

我有时也需要在 Windows 中使用它。我还没有在 Linux 中测试版本 5,所以它可能无法正常工作。

于 2008-10-14T19:59:25.940 回答