【问题标题】:ASP.NET MVC Preview 5 on MonoMono 上的 ASP.NET MVC 预览版 5
【发布时间】:2008-10-14 19:08:37
【问题描述】:

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

Mono Project Roadmap 表示 Mono 2.4(明年)的 ASP.NET 3.5。在那之前有什么想法可以让这个有用吗?

更多细节:基本的 MVC Preview 5 模板似乎可以工作,只要我避开根目录。如果我请求 root,我会得到:

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

【问题讨论】:

    标签: asp.net-mvc mono


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

        • XSP 2.0,Windows,只使用默认的 MVC Preview 5 模板。但经过更多研究,似乎只有 RewritePath("/") 失败。我们尝试过的其他一切似乎都运行良好。
        • 这里也失败了,这就是为什么我使用 Request.ApplicationPath 而不是“/”
        • 除了 Request.ApplicationPath 以“/”的形式通过。
        猜你喜欢
        • 2010-09-14
        • 2018-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多