Mono MVC 2 Home Route не работает - PullRequest
       26

Mono MVC 2 Home Route не работает

8 голосов
/ 08 октября 2010

Я пытаюсь преобразовать приложение 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.

Ответы [ 2 ]

5 голосов
/ 17 марта 2011

Я действительно столкнулся с той же проблемой и решил ее (по крайней мере, в моей ситуации) по полной ошибке ...

В пошаговом руководстве nginx на сайте моно-проекта написаночтобы ввести эти строки в ваш файл nginx.conf:

index index.html index.htm default.aspx Default.aspx;
fastcgi_index Default.aspx;

Ну, я настроил это точно так же (или я так думал) на двух виртуальных машинах.Проблема в том, что у одной виртуальной машины была корневая ссылка, а у другой - нет.Оказалось, что я забыл точку с запятой в строке index на виртуальной машине, которая работала, так что строка fastcgi_index была интерпретирована как часть строки index.

Поэтому на виртуальной машине, которая не работала, я удалил эту точку с запятой.И угадай что?Это сработало.Затем я добавил точку с запятой и полностью удалил строку 'fastcgi_index', и она все еще работала.Поэтому, основываясь на этом анекдотическом свидетельстве и некоторых предположениях, я бы сказал, что строка 'fastcgi_index' не должна включаться в приложения MVC.Ну, по крайней мере, MVC 3, я больше ничего не тестировал.

1 голос
/ 15 октября 2010

Следовали ли вы конфигурации nginx с этой страницы ?: http://www.mono -project.com / FastCGI_Nginx

Я думаю, что документ по умолчанию мешает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...