Проблемы с Mono, MVC и FastCGI

У меня есть два веб-сайта, которые я создал с помощью Mono.NET. Оба были построены исключительно с использованием Xamarin Studio (например, MonoDevelop). Первое - стандартное приложение веб-форм Asp.NET, а второе - приложение MVC Asp.NET.

Я успешно развернул первое приложение на своем сервере RedHat 7. Сервер использует NGINX в качестве прохода и использует FastCGI. Само веб-приложение запускается в корневом каталоге (/var/www/html/) и, таким образом, указывает на http://%5Bmyserver%5D.com/ kicks приложения. Это все работает красиво.

Мое второе приложение (приложение MVC) должно работать как своего рода виртуальный каталог корня. Поэтому указание на http://%5Bmyserver%5D.com/admin/ должно получить доступ к приложению MVC. Это было правильно настроено на сервере, и когда вы указываете на http://%5Bmyserver%5D.com/admin, он явно пытается запустить приложение MVC.

Моя проблема заключается в том, что при попытке доступа к http://%5Bmyserver%5D.com/admin возникает исключение приложения:

System.Web.Compilation.ParseException
Cannot find type Letters.Web.Admin.MvcApplication

Description: Error parsing a resource required to service this request. Review your source file and modify it to fix this error.
Details: Cannot find type Letters.Web.Admin.MvcApplication
Error origin: Parser
Error source file: /var/www/html/admin/Global.asax

Error source context:
Error lines: 1, 1
1: <%@ Application CodeBehind="Global.asax.cs" Inherits="Letters.Web.Admin.MvcApplication" Language="C#" %>

Я гуглил об этой ошибке в течение 2 дней без удачи. Я дважды проверил, чтобы убедиться, что каталог / bin существует в папке / admin (он есть) и что присутствуют все соответствующие файлы.dll, включая dll веб-приложения (также присутствует). Я удостоверился, что у моего Global.asax есть соответствующее объявление (это делает... см. Ниже)

<%@ Application CodeBehind="Global.asax.cs" Inherits="Letters.Web.Admin.MvcApplication" Language="C#" %>

Я также убедился, что пространство имен в коде задано правильно (это... см. Ниже)

namespace Letters.Web.Admin
{
    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes (RouteCollection routes)
        {
            routes.IgnoreRoute ("{resource}.axd/{*pathInfo}");

            routes.MapRoute (
                "Default",
                "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = "" }
            );

        }

        public static void RegisterGlobalFilters (GlobalFilterCollection filters)
        {
            filters.Add (new HandleErrorAttribute ());
        }

        protected void Application_Start ()
        {
            AreaRegistration.RegisterAllAreas ();
            RegisterGlobalFilters (GlobalFilters.Filters);
            RegisterRoutes (RouteTable.Routes);
        }
    }
}

Я не могу на всю жизнь понять проблему. Кажется, все работает правильно. Это приложение отлично работает на моем Mac с использованием студии Xamarin. Я дважды проверил, и на моем Mac установлена ​​та же версия mono, что и на сервере. Я предполагаю, что, вероятно, происходит что-то еще, что скрывается этой ошибкой, но я не могу понять проблему. У кого-нибудь есть какие-либо идеи?

0 ответов

Другие вопросы по тегам