4

我有两个使用 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 目录存在于 /admin 文件夹中(确实存在),并且所有适当的 .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 Studio 在我的 Mac 上运行良好。我已经仔细检查过,我的 mac 上安装了与服务器上相同版本的单声道。我猜可能还有其他事情正在被这个错误所混淆,但对于我的生活,我无法弄清楚这个问题。有没有人有任何想法?

4

0 回答 0