32

我遇到了一个我暂时无法解决的错误。我想知道是否有人可以帮助确定此错误的原因?我对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" %>
4

21 回答 21

49

尝试用CodeFile替换CodeBehind

于 2013-06-03T05:50:33.010 回答
9

无法加载类型

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

一些可能的原因是:

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

注意:避免使用Inventory1. 它们暗示存在Inventory2,Inventory3等,这是不好的做法,因为它们模棱两可且描述性不强。此外,Global它非常模糊,可能会与全局命名空间混淆。

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

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

于 2013-02-25T17:01:37.540 回答
7

我有这个错误,只需要重建项目

于 2013-11-14T09:17:00.233 回答
5

我遇到了这个问题,我从这里得到了解决方案,我想分享它。

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

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

于 2013-10-01T16:37:42.797 回答
3

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

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

  • 如果您从 IIS Express 到 Local IIS 进行了任何更改,您可能需要将构建配置从 更改bin/debugbin. (右键单击解决方案>>属性>>构建>>输出)

  • 如果您有 URL 重写,那么您需要在本地 IIS 上安装 URL 重写

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

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

现在你应该可以走了。

于 2017-10-13T17:23:27.370 回答
3

因为它只发生在 IISexpress 上,所以将输出从 bin\Debug\ 更改为 bin\ 为我解决了这个问题。将标签 CodeBehind 更改为 CodeFile 只会产生更多问题。

于 2018-05-01T17:14:47.507 回答
1

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

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

  • %userprofile%\documents\iisexpress\config\applicationhost.config
  • %userprofile%\我的文档\iisexpress\config\applicationhost.config
于 2015-02-09T19:21:29.010 回答
1

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

于 2020-08-27T20:11:05.363 回答
1

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

于 2018-05-29T22:04:56.493 回答
0

Parser Error Message: Could not load type __

After doing everything suggested in the comments above, with no luck, refreshing (uploading) the contents of /bin to the server worked. The files uploaded to bin are the: dll, pdb and xml. Don't know which one did it.

The problem I had here was induced by renaming a file (_.aspx) in Solution Explorer.

于 2013-09-26T14:43:49.230 回答
0

您可能重命名了某些内容。检查 Global.asax.cs 文件中的类声明,并确保命名空间和类名与asax 文件中的内容完全匹配。这包括案例!您能否将 .cs 文件的命名空间和类声明复制/粘贴到此处的帖子中,以便我们进行比较?

于 2013-02-25T16:31:51.227 回答
0

我在我们的基础项目中修复了我的命名空间,然后我开始在另一个引用它的项目上看到这个错误。我不得不删除对 Base Project 的引用并重新添加它,然后它又开始工作了。

于 2018-08-20T17:21:18.310 回答
0

重建/重新发布我的项目/解决方案到服务器对我没有任何帮助,我怀疑这会帮助很多人摆脱这种困境。对我来说,我做了一些事情来解决这个问题,最终让我摆脱了这个“洞”。

我一直在尝试在网站上使用绑定,但这不起作用。当我得到 OP 看到的解析器错误时,我尝试使用http://localhost/Report.aspx(这是我的主页,我选择不调用Default.aspx- 我稍后将使用名称更新“默认文档”部分)调用该站点。所以我尝试了一些事情:

我停止了旧项目的网站并构建了另一个简单的 Web 项目,它在页面上有“你好”和一个标签,没有别的。我在 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 版本的原因。

于 2016-06-20T16:29:58.910 回答
0

如果您刚刚添加了新的 aspx 文件,请重建它所在的项目。问题来自您的代码隐藏文件,该文件目前未编译,因此您想要访问当前不存在的较新页面编译项目dll

于 2020-02-28T14:13:08.837 回答
0

试试这个它肯定会工作: - 解析错误:

可能是你的类名与网络表单名不匹配

于 2021-12-08T11:27:19.703 回答
0

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

于 2017-05-29T12:58:55.303 回答
0

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

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

于 2016-10-21T10:42:04.197 回答
0

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

于 2019-06-07T08:32:31.137 回答
0

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

于 2016-10-04T19:13:14.347 回答
0

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

于 2018-12-07T22:36:46.237 回答
0

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

例如,我说域名 AAA.com 拥有自己的网站。然后我还有指向 AAA.com 主目录下的目录的 BBB.com。最初我为 AAA.com 和 BBB.com 有单独的 VS 项目,但那不再起作用了。因此,我不得不将 BBB.com 的所有文件移至 AAA.com 项目,并将其设置为与远程服务器上显示的完全一样。出于某种原因,这行得通。

于 2021-06-22T02:20:39.237 回答