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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Global.asax中的“分析器错误消息:无法加载类型”相关的知识,希望对你有一定的参考价值。

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

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

来源错误:

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

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

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

答案

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

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

另一答案

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

另一答案

我正在研究一个较旧的'基于文件夹的'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中定义的类的名称

另一答案

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

另一答案

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

另一答案

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

Source

另一答案

我也遇到了同样的问题。尽管遵循每一个答案它没有工作。然后我将“Inherits = namespace.class”更改为“Inherits =完全限定的汇编名称”,即“Inherits = namespace.class,assemblyname,Version =,Culture =,PublicKeyToken =”希望它有所帮助。

另一答案

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

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

另一答案

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

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

另一答案

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

另一答案

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

另一答案

检查项目输出路径(项目属性/构建)是否设置为bin而不是binReleasebinDebug

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

另一答案

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

另一答案

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

另一答案

对我来说问题是我的项目中没有包含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);
        }
    }
}
另一答案

重建项目可以解决问题。

另一答案

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

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

程序 _(T)_ / - 编程 - _(T)/

另一答案

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

另一答案

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

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

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

另一答案

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

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

另一答案

我在这个问题上花了好几天。我终于通过这篇文章中的以下建议组合解决了这个问题。

  1. 将平台目标更改为任何CPU。我目前没有这个配置,所以我不得不去配置管理器并添加它。我专门为x64编译。仅这一点并没有解决错误。
  2. 将输出路径更改为bin而不是binx64Debug。在我更改平台目标之前,我已经尝试了好几次。除了因为格式无效而无法加载程序集的错误之外,它从未有所作为。

要清楚,我必须在它开始工作之前做这两件事。我曾经多次尝试过它们,但是直到我做了两次都没有修好它。

如果我将这些设置中的任何一个更改回原始设置,我会再次获得相同的错误,尽管已运行Clean Solution,并手动删除bin目录中的所有内容。

另一答案

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

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

另一答案

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

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

另一答案

有两种方法可以实现:

  • 配置管理器将dll构建显示为'64'和'任何cpu'构建的混合。将它们全部放在同一个构建中会修复它。
  • 在分支之间切换时,IIS express路径有时不会更新。右键单击任务栏中的“IIS Express”>显示所有应用程序并验证路径是否为正确的分支。
另一答案

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

右键单击Global.asax文件并选择“打开方式”,然后选择“带编码的XML(文本)编辑器”(其他编辑器也可以使用,但这是我使用的)。

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

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

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

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

另一答案

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

另一答案

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

另一答案

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

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

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

因此,如果您看到此错误,并且清理/重建无效,请打开Project的References树,并检查感叹号。

enter image description here

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

The primary reference "C:ProjectsBusiness Objects 4inReleaseBusinessObjects.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将让您完全构建和运行悄悄包含此问题的解决方案。这是在寻找麻烦..!

另一答案

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

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

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

另一答案

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

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

以上是关于Global.asax中的“分析器错误消息:无法加载类型”的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET中的Webconfig 和 Global.asax区别

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

MVC4 中 Global.asax.cs 页面中的问题

Global.asax中的Application_Error事件不执行

从 global.asax 中的 Application_BeginRequest 重定向到一个动作

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