分析器错误消息:无法加载类型'sometype'

时间:2013-02-25 16:10:09

标签: c# asp.net global-asax

我遇到一个错误,我现在暂时无法解决。我想知道是否有人可以帮助确定此错误的原因?我是asp / asax的新手。经过一些研究,我认为我得到的错误是由于Web应用程序试图使用过时的代码。我正在考虑使用Visual Studio和/或整个项目重建c#文件。但是,我对C#和asp完全不熟悉,并且想知道可以给我一些建议,如果这可以解决问题和/或是否有可能的替代解决方案。

错误消息

Parser Error Message: Could not load type 'Inventory1.Global'.

Source Error:   <%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>

整个 Global.asax内容:

<%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>

20 个答案:

答案 0 :(得分:31)

尝试将 CodeBehind 替换为 CodeFile

答案 1 :(得分:8)

  

无法加载类型

表示无法加载类型。 (在这种情况下,“类型”指的是Inventory1.Global)。类型位于已编译的DLL中。因此,DLL无法使用,已过期,或者不包含具有给定名称的public类型。

一些可能的原因是:

  • 您没有使用给定名称声明的类型。对于您的示例,您应该具有以下内容:
namespace Inventory1 {
  public class Global {
  ...
  }
}

注意:避免使用Inventory1等名称。他们暗示有一个Inventory2Inventory3等,这是不好的做法,因为它们是明确的,而且不是很具描述性。此外,Global非常模糊,可能会引起global namespace的混淆。

  • 确保您的案例符合(Inventory1,而不是INVENTORY1。)
  • 您尚未编译该项目。在VS中,重建解决方案。
  • 声明该类的程序集有编译错误,因此相关的DLL丢失或过期。确保您已解决所有错误。
  • 该课程未标记为public

如果我不得不猜测,我会把钱花在编译错误上。与PHP和其他解释型语言不同,C#必须先成功编译才能使用。

答案 2 :(得分:4)

我遇到了这个问题,我从here得到了解决方案,我想分享一下。

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

我这样做了,它对我来说就像一个魅力!!

答案 3 :(得分:4)

我遇到了这个错误,只需要重建项目

答案 4 :(得分:3)

由于它只发生在IISexpress上,因此将bin \ Debug \的输出更改为bin \解决了它。将标签CodeBehind更改为CodeFile只会产生更多问题。

答案 5 :(得分:1)

这发生在我本地的机器上。问题是IISExpres配置不正确。 如果您在本地环境中遇到此问题(Visual Studio调试运行),请检查IIS Express配置文件。确保您的本地站点/应用程序路径指向正确的位置。

配置文件名为applicationhost.config。它存储在这里: 我的文件&gt; IIS Express&gt;配置。通常(并非总是)这些路径之一将起作用:

  • %USERPROFILE%\文件\ iisexpress \配置\对ApplicationHost.config
  • %userprofile%\ my documents \ iisexpress \ config \ applicationhost.config

答案 6 :(得分:1)

我添加了一个新的构建配置文件,默认为输出 /bin/[new profile name],而当我运行调试器时,它试图仅查看/bin

答案 7 :(得分:1)

在寻找可能导致这种情况的原因之后,我发现了一些我需要做的事情才能使我的项目运行...

(注意:你可能不需要做所有这些 - 这是一个个案的事情)

  • 如果您从IIS Express到本地IIS进行了任何更改,则可能需要将构建配置从bin/debug更改为bin。 (右键单击解决方案&gt;&gt;属性&gt;&gt;构建&gt;&gt;输出)

  • 如果您有重写网址,则需要安装URL rewrite on your Local IIS

  • 导航至您的applicationhosts.config文件(通常是C:\Users\username\Documents\IISExpress\config之类的文件)并将文件重命名为applicationhostsOLD.config

  • 清理并重建您的项目。您可能需要手动清空垃圾箱。

现在你应该好好去。

答案 8 :(得分:1)

在dll程序集中找不到必要的文件。 重建项目,重建解决方案,然后再试一次。

答案 9 :(得分:0)

我在远程服务器上遇到了这个问题,但在我的本地服务器上没有。在尝试了一切但没有任何效果后,我终于解决了它。我的域名指向另一个域下的目录。我最初是在 Visual Studio 中独立构建网站作为自己的项目。无论我做什么,它都不再起作用了。所以我把它移到项目内部的一个文件夹中作为主域名,并作为主项目的一部分上传。

例如,我说域名 AAA.com 有自己的网站。然后我还有指向 AAA.com 主目录下的目录的 BBB.com。最初我为 AAA.com 和 BBB.com 有单独的 VS 项目,但这不再起作用了。所以我不得不将所有 BBB.com 的文件移动到 AAA.com 项目,并按照远程服务器上显示的方式进行设置。出于某种原因,这奏效了。

答案 10 :(得分:0)

你可能会重命名一些东西。检查Global.asax.cs文件中的类声明,并确保命名空间和类名与完全匹配asax文件中的内容。这包括案例!你可以将.cs文件的命名空间和类声明复制/粘贴到这里的帖子中,以便我们可以比较吗?

答案 11 :(得分:0)

如果您只是添加了新的aspx文件,请重建它所在的项目。问题出在您当前未编译的代码隐藏文件中,因此您想访问一个不存在的新页面在您当前编译的项目dll中

答案 12 :(得分:0)

重命名aspx页面后,我遇到了同样的问题Visual Studio重命名了它,但是删除了命名空间。确保Inherits属性包含包含名称空间的完全限定名称。

答案 13 :(得分:0)

我今天刚收到这个错误。原来是因为我错误地将项目文件还原为不再包含该页面的较旧版本。

答案 14 :(得分:0)

我正在基础项目中修复我的名称空间,然后开始在另一个引用该名称空间的项目中看到此错误。我必须删除对基础项目的引用,然后重新添加它,然后它才能再次开始工作。

答案 15 :(得分:0)

请检查所有位置的命名空间和类名。在一种情况下,一个团队成员更改了命名空间,我在.aspx文件中使用旧命名空间。这引起了问题。我更新了命名空间,它开始工作了。

答案 16 :(得分:0)

请尝试将项目作为项目/解决方案打开,很可能会解决错误。当我们尝试将项目作为网站打开时,会发生此类错误无法加载类型....

我试图打开我的项目作为解决方案,它解决了我的问题。

答案 17 :(得分:0)

我尝试了上面列出的所有解决方案,但没有一个有效。我终于创建了一个新的网页(webform)并将所有代码(cs和aspx文件)从旧文件中删除,删除了旧的cs和aspx文件,重新编译,现在我又回到了商业中。我知道这没有意义。它应该不重要,但它有效。

答案 18 :(得分:0)

重建/重新发布我的项目/解决方案到服务器并没有帮助我,我怀疑这将有助于解决这些困境中的许多人。对我来说,我做了一些事情来解决这个问题,最终让我走出了这个“漏洞”。

我一直试图在网站上使用绑定,但这不起作用。我尝试使用http://localhost/Report.aspx调用该网站(这是我的主页,我选择不调用Default.aspx - 当我收到Parser时,我打算用更新的名称更新“默认文档”部分OP看到错误。所以我尝试了一些东西:

我停止了旧项目的网站并构建了另一个简单的Web项目,该项目在页面上有“hello”和标签,没有别的。我在Page_Load中有一行用“world!”填充标签的Text属性,只是为了确保该部分正常工作。我在端口80上创建了一个新网站,并将我网站的已发布内容传输到服务器。因此,即使我在服务器上安装了.NET 4.5(并且已经从4.0目录运行了aspnet_regiis -i命令),并且我用于此新项目的IIS中的应用程序池设置为4.0,浏览器也抱怨web.config中包含targetFramework=4.5.2,这是Visual Studio 2015的默认框架。所以我安装了.NET 4.6(NDP46-KB3045557-x86-x64-AllOS-ENU.exe),重新启动了服务器,然后我的简单网站工作了。所以我删除了这个网站 - 我想做的只是证明我的安装步骤是准确的,服务器可以运行一个网站。

然后我回到原来的项目/网站 - 我删除并重新创建了网站。我把应用程序池放到我最初为此创建的那个,我确保运行.NET 4.0。完成此操作后,我导航到了我的网站,使用http://localhost/Report.aspx时一切正常。所以在我看来是什么导致这就是你正在使用的.NET Framework版本。

答案 19 :(得分:0)

分析程序错误消息:无法加载类型 _ _

在完成上述评论中建议的所有内容后,没有运气,刷新(上传)/ bin的内容到服务器工作。上传到bin的文件是:dll,pdb和xml。不知道是哪一个做到的。

我在这里遇到的问题是通过在解决方案资源管理器中重命名文件( _ .aspx)来实现的。