Mono,MVC和FastCGI的问题

时间:2015-12-09 12:06:40

标签: c# asp.net asp.net-mvc-4 mono fastcgi-mono-server

我有两个用Mono.NET创建的网站。两者都是使用Xamarin Studio(例如MonoDevelop)专门构建的。第一个是标准的Asp.NET webforms应用程序,第二个是Asp.NET MVC应用程序。

我已成功将第一个应用程序部署到我的RedHat 7服务器。服务器正在运行NGINX作为传递并利用FastCGI。 Web应用程序本身在根目录(/ var / www / html /)上运行,因此指向应用程序的http://[myserver].com/踢。一切都很美好。

我的第二个应用程序(MVC)应该作为根的一种虚拟目录运行。所以指向http://[myserver].com/admin/应该访问MVC应用程序。这已在服务器上正确配置,当您指向http://[myserver].com/admin时,它显然会尝试启动MVC应用程序。

我的问题是尝试访问http://[myserver].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目录中存在/ bin目录(确实存在)并且存在所有相应的.dll文件,包括Web应用程序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);
        }
    }
}

我不能为我的生活弄清楚这个问题。一切似乎都正常运作。这个应用程序使用Xamarin工作室在我的Mac上正常运行。我已经仔细检查了一下,我在Mac上安装了与在服务器上安装的相同版本的单声道。我猜测可能还有其他事情正在被这个错误混淆,但对于我的生活,我无法弄清楚这个问题。有没有人有任何想法?

0 个答案:

没有答案