作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 ASP .NET MVC 2 应用程序转换为在 nginx/mono 2.8 上运行。到目前为止,它似乎工作得很好,除了当路径为空时默认路由不起作用。我将所有请求代理到 fastcgi 服务器,并收到 ASP .NET 404 未找到页面。
即这不起作用
http://mysite.com
但这确实
http://mysite.com/home
我的 Global.asax.cs 文件如下所示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace MyProject
{
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Default route
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] {"MyProject.Controllers"}
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
}
编辑:有关我的设置的更多信息。我正在运行 OS X 10.6(如果这有什么区别的话)。 MVC项目中任何区域的默认路由也存在同样的问题。
最佳答案
我实际上遇到了同样的问题并完全错误地解决了它(至少在我的情况下)......
在 nginx walkthrough在 mono 项目的网站上,它要求在 nginx.conf 文件中输入以下行:
index index.html index.htm default.aspx Default.aspx;
fastcgi_index Default.aspx;
嗯,我在两个虚拟机上以完全相同的方式(或者我是这么认为的)进行了设置。问题是,一台虚拟机的根 URL 可以工作,而另一台则不能。结果是我忘记了工作虚拟机上“index”行上的分号,因此“fastcgi_index”行被解释为“index”行的一部分。
因此,在无法正常工作的虚拟机上,我删除了该分号。你猜怎么着?有效。然后我添加了分号并完全删除了“fastcgi_index”行,它仍然有效。因此,根据这些轶事证据和一些猜测工作,我认为“fastcgi_index”行不应包含在 MVC 应用程序中。好吧,至少 MVC 3,我还没有测试过其他任何东西。
关于asp.net-mvc-2 - Mono MVC 2 主路由不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3891976/
我是一名优秀的程序员,十分优秀!