修复global.asax中的语法错误

时间:2013-11-11 10:20:25

标签: c# asp.net .net asp.net-mvc asp.net-mvc-4

我有一个asp.net mvc4应用程序。我在Global.asax文件

中遇到了问题

demo

Global.asax.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;

namespace integration_finale
{

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
    }
}

当我启动应用程序时出现此错误:

demo2

翻译成英文

  '/'应用程序中的服务器错误。        分析错误        描述:在分析满足此需求资源的需求期间发生错误。请参阅下面的详细信息   有问题的错误分析和修改您的源文件   适当。

     

消息解析器错误:无法加载类型   'integration_finale.MvcApplication'。

     

来源错误:

     

第1行:<%@ Application Codebehind =“Global.asax.cs”Inherits =   “integration_finale.MvcApplication”语言=“C#”%>

     

源文件:/ global.asax Line:1

     

版本信息:Microsoft .NET Framework版本: 4.0.30319;   ASP.NET版本:4.0.30319.18056

那么问题是什么?我该如何解决?

1 个答案:

答案 0 :(得分:4)

当IIS Express无法加载包含所请求类的任何库时,抛出此错误,在本例中为integration_finale.MvcApplication。它无法找到库的事实可能有很多原因,hereherehere有一些原因。

IIS Express为此增加了一层混乱。您在IIS Express中为给定端口注册的第一个应用程序将注册其项目路径。当您重命名项目或运行配置了早期注册端口的新项目时,IIS Express将很乐意从错误的目录开始提供服务。当您拥有相同的项目(例如,DEV和ACC分支,因此可以找到包含具有相同名称的的Web应用程序的库)时,这尤其有趣,就像您在浏览器中看到的那样不是你所期望的那样。

打开My Documents\IISExpress\config\appplicationhost.config,然后搜索为Web应用程序配置的端口,以显示错误。你会看到这样一个部分:

<site name="YourWebsiteName" id="1">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Source\WebsiteProject" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:1234:localhost" />
    </bindings>
</site>

检查应用程序部分并确认physicalPath指向您当前的项目。在满足physicalPath的情况下,对该端口的每个请求都是从virtualDirectory提供的(在这种情况下,大多数情况下,因为只有一个虚拟目录,从站点的根开始)。

如果重命名项目目录,或者有两个项目使用相同的端口,那么IIS Express中的内容会中断。可能的修复:

  • 只需在VS的属性窗口中更改用于IIS Express的Web项目端口即可。这将创建一个新的IIS Express站点。
  • 点击项目配置中的“创建虚拟目录”按钮。这通常在重命名后有效,但在复制后无效。
  • 修改IIS Express的配置(当然,进行备份)。您可以在需要时重命名该网站,并更正physicalPath。{/ li>的virtualDirectory