gpt4 book ai didi

asp.net-mvc-2 - Mono MVC 2 主路由不起作用

转载 作者:行者123 更新时间:2023-12-02 01:58:10 24 4
gpt4 key购买 nike

我正在尝试将 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com