首页 文章

Global.asax中的“分析器错误消息:无法加载类型”

提问于
浏览
183

我正在研究MVC3项目并收到以下错误:

分析器错误消息:无法加载类型'GodsCreationTaxidermy.MvcApplication' .

来源错误:

第1行:<%@ Application Codebehind =“Global.asax.cs”Inherits =“GodsCreationTaxidermy.Core.MvcApplication”Language =“C#”%>

我得到的错误是无法加载GodsCreationTaxidermy.Core.MvcApplication但在此屏幕截图中Core部分未显示在错误中:

Error Page Screenshot

有没有人对此错误有任何想法或解决方案?

30 回答

  • 0

    您的本地Web服务器运行的代码与您实际使用的代码不同 . 确保您已停止调试,停止本地Web服务器,清理并重建Peter建议,仔细检查您的global.asax和global.asax.cs,然后重试 .

    如果这不起作用并且您使用的是本地IIS,请尝试在IIS管理器中删除该站点并手动重新创建它 .

  • 1

    检查项目输出路径(项目属性/构建)是否设置为 binnot bin\Releasebin\Debug

    由于某种原因,IIS(VS开发服务器或本地IIS)始终从 bin 目录访问库(并且不会查找子目录)

  • 2

    尝试修改global.asax文件(简单地在某处添加空格)并重新运行 . 这将强制内置的Web服务器刷新并重新编译global.asax文件 .

    还要做一个干净和重建 - 应该解决问题

  • 0

    如果在生成 global.asax 之后更改名称空间信息(项目或类级别),则有时会发生这种情况 .

    右键单击 Global.asax 文件并选择"Open With",然后选择"XML (Text) Editor with Encoding"(其他编辑器也可以正常工作,但这就是我使用的) .

    然后编辑XML指令中的“继承”部分

    <%@ Application Codebehind =“Global.asax.cs”Inherits =“GodsCreationTaxidermy.MvcApplication”Language =“C#”%>)

    这样它就匹配Application类的实际全名 . 就是这样 .

    另一个选择是从Global.asax.cs复制所有代码,然后删除并创建另一个Global.asax文件(然后将代码复制回Global.asax.cs) .

  • 0

    我关闭并重新打开视觉工作室,它工作 .

  • 0

    我不得不去BUILD - > CONFIGURATION MANAGER和 - 哼 - 检查我项目旁边的框以确保它实际构建完成 .

  • 2

    我今天遇到了这个问题,我花了一段时间才找到原因 .

    基本上,我的主要VS2015项目包括一个使用更高版本的.Net Framework构建的子项目 .

    奇怪的是,当你遇到这个问题时,VS2015会很高兴地报告解决方案已经构建好了,但是当你尝试运行网站时,它只会给你误导性的错误,这表明你的 Global.asax.cs 文件是错误的 .

    因此,如果您看到此错误,并且清理/重建没有't help, open your Project' s References 树,请检查感叹号 .

    enter image description here

    另外,检查 Output 窗口是否有这样的消息:

    The primary reference "C:\Projects\Business Objects 4\bin\Release\BusinessObjects.dll" 
    could not be resolved because it was built against 
    the ".NETFramework,Version=v4.5" framework. 
    This is a higher version than the currently targeted framework
    ".NETFramework,Version=v4.0".
    

    当然,解决方案是右键单击主项目,选择顶部选项卡“Application”,然后将Target Framework版本更改为与子项目匹配的更高版本 .

    令人讨厌的是,Visual Studio 2015将让您完全构建和运行悄悄包含此问题的解决方案 . 这是在寻找麻烦..!

  • 186

    我刚刚在一个MVC5应用程序上遇到过这个,没有任何东西对我有用 . 这是在我尝试将SVN恢复为旧版本项目之后发生的 .

    我不得不 delete global.asax.cs,然后通过右键单击Project - > Add New Item - > Global.asax添加一个新的,最后修复了它 .

    只是觉得它可能对某人有帮助 .

  • 1

    我必须报告我在这篇文章中尝试过至少4条建议 . 他们都没有工作 . 然而,我很高兴地报告说我通过从后面检索恢复了 . 只需从日志文件更新我的上一次代码更改 . 花了不到10分钟 . 花了3次阅读这篇文章并尝试其他建议 . 抱歉 .

    这是一个非常奇怪的错误 . 祝所有遇到这个gremlin的人好运 .

  • 1

    当我有2个运行相同项目的Visual Studio实例时,我遇到同样的问题 . 所以我关闭了两个Visual Studio,只打开了一个实例,现在工作正常!

  • 1

    我正在研究一个较旧的'基于文件夹的'ASP.NET Web项目(我讨厌) - 并发现这是我的修复:

    创建一个 App_Code 文件夹(如果没有已经)

    Global.asax.vb 文件移动到 App_Code 文件夹中

    Global.asax中的标记可以省略任何名称空间(至少,对于这种样式的项目,afaik):

    <%@ Application Codebehind="Global.asax.vb" Inherits="MyApp" Language="VB" %>
    

    ...其中“MyApp”是Global.asax.vb中定义的类的名称

  • 0

    您还可以在IIS中检查站点的属性 . (在IIS中,右键单击该站点,然后选择“属性” . )确保“物理路径”设置指向应用程序的正确路径,而不是某些其他应用程序 . (这为我修复了这个错误 . )

  • 0

    清空bin文件夹 . 构建所有依赖类库并在主项目中引用它们,并构建完整的解决方案 .

    Source

  • 0

    我也遇到了同样的问题 . 尽管遵循每一个答案它没有工作 . 然后我改变了“继承= namespace.class " to " Inherits = fully qualified assemble name " i.e " Inherits = namespace.class,assemblyname, Version=, Culture=, PublicKeyToken= ”希望它有所帮助 .

  • 15

    如果您在同一解决方案中运行Web和WebApi时意外忘记将VS解决方案设置为“多个启动项目”,也会发生这种情况 .

    您可以通过右键单击解决方案资源管理器中的解决方案并选择“属性”来检查这一点 . 然后查找“启动项目” .

  • 4

    “构建 - >配置管理器 - 请注意我的项目旁边的框,以确保它实际构建完毕 . ”那个并转到Windows资源管理器中的项目文件夹,按下选项并取消选中“只读”复选框 .

  • 0

    从解决方案根目录中删除 .vs 目录 . 清洁 . 重建 .

    这个问题偶尔让我疯狂,我不可避免地会在这里寻找答案 . 我怀疑有多种原因可以产生这种异常,这一次对我有用 .

  • 0

    这个问题我通过给予文件夹的权限以及从IIS检查来解决 .

    当我在当地环境中测试时,我获得了所有人的许可 . 但在发布模式下,我认为我们只给ASP.Net用户许可 .

  • 1

    我也得到了同样的错误...检查你正确开发的应用程序的名称,即 . 分配的命名空间和程序集名称,并尝试物理更改为应用程序创建的文件夹的名称,所有这些应与文件global.asax中的上述命名空间中的名称相同

  • 0

    我也遇到了同样的错误...检查虚拟目录的IIS配置,并确保属性 - ASP.NET - ASP.NET版本与项目属性 - 应用程序 - 目标框架相同 . (这为我修复了这个错误 . )

  • 0

    我的应用程序是在旧版本的VS中构建的,并且没有bin文件夹 . 我已经将它升级到更新的版本,并且有一个噩梦让它部署 . 我最终将此错误跟踪到项目>属性>应用程序 . 目标框架设定为2.0;在服务器上更改它以匹配IIS管理器/应用程序池为我解决了这个问题 .

  • 156

    我发现更改项目上的命名空间,而不重构整个解决方案是我的问题 . 检查项目属性并查看命名空间是什么,确保全面排列 .

  • 25

    对我来说问题是我的项目中没有包含global.asax.cs . 因为我正在将文件从.net 4.5复制到4.0,所以我没有注释掉4.0中不需要的行 . 因为它没有被包括在视觉工作室无论如何编译它没有问题 . 但是当我把它包括在内时,它突出了引起问题的线条 .

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    //using System.Web.Http;
    using System.Web.Mvc;
    //using System.Web.Optimization;
    using System.Web.Routing;
    
    namespace YourNameSpace
    {
        public class WebApiApplication : System.Web.HttpApplication
        {
            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
                //GlobalConfiguration.Configure(WebApiConfig.Register);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                //BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
        }
    }
    
  • 17

    重建项目可以解决问题 .

  • 32

    我花了一天时间试图解决这个问题 .

    唯一有效的方法是删除.sln文件,创建一个新文件,然后逐个添加项目 .

    ¯\ (ツ) /¯ - 编程 - ¯\ (ツ)

  • 0

    无法加载项目错误 firstly Fix your errors and after rebuild project its working

  • 0

    对于我的情况,Web程序集是GAC的一部分...所以在构建之后,它需要安装在GAC中并且它可以工作 .

  • 2

    我遇到此错误消息,并最终发现该错误消息具有误导性 . 在我的情况下,似乎在IIS中存在路由问题,导致从Web服务器上的另一个站点读取global.asax,从而生成错误 .

    在IIS中,我的站点绑定到http:* 80:webservices.local并包含一个名为MyAPI的应用程序 . 我在使用Web服务器的ip地址调用MyAPI应用程序时收到了可怕的消息 .

    为了成功调用我的应用程序,我必须添加一个主机文件条目对于调用MyAPI应用程序的所有计算机上的webservices.local . 然后我的所有请求都必须以http://webservices.local/MyAPI/作为前缀才能正确路由 .

  • 2

    我在这里尝试了一切,没有任何效果 . 我的项目是在VS 2013中 . 我已经升级到VS 2015并且在2015年创建了我的所有新应用程序,但是加载,编译,构建了所有我在2013年在该版本中构建的旧应用程序 .

    我最终只是在2015年加载解决方案并且它为我解决了它 .

  • 1

    我用这种方式解决了这个问题:只需修复Global.asax中的 namespace 即可 .

相关问题