【问题标题】:Could not load type 'XXX.Global'无法加载类型“XXX.Global”
【发布时间】:2010-09-08 09:56:53
【问题描述】:

将项目从 ASP.NET 1.1 迁移到 ASP.NET 2.0 时,我一直遇到此错误。

我实际上并不需要 Global,因为我没有向它添加任何内容,但是在我删除它之后,我得到了更多错误。

【问题讨论】:

标签: asp.net visual-studio


【解决方案1】:

我遇到此问题的原因是因为我更改了构建配置。 当我将 Web 项目设置为 x86 时,它会将输出路径更改为 bin\x86\Debug。但是,输出路径应该是 bin,因此 Web 服务器不会找到二进制文件。

因此,解决方案是在更改构建配置后将网站的输出路径改回bin

【讨论】:

  • +1 这可能是有史以来关于堆栈溢出的最佳答案。仅用言语不足以表达我对这个非常有帮助、措辞出色的答案的感激之情。当这个答案被阅读和应用时,欢呼声在半个世界之外响起,获得了巨大的成功和真诚的解脱感。我们特别为我们亲爱的导游彼得准备了一杯冰镇啤酒。先生,愿您过上非常长寿和幸福的生活。一个绝对了不起的贡献。简直太棒了。谢谢。
  • 谢谢。新西兰对我来说有点开车,但如果我在附近,我会带你去。
  • 我想对这个最出色的答案表示祝贺。
  • 哦,是的,我自己永远也找不到这个……谢谢!
  • 我们的问题是安装项目的主输出指向“bin”文件夹,因此其编译后的 dll 最终位于 \site\bin\bin。根本原因不同,但结果相同。奇怪的是,ProcMon 或融合日志中没有任何内容指出我们的原因。
【解决方案2】:

您可以尝试一些方法,似乎经常发生,而且解决方案似乎因人而异。

  • 如果您仍在使用 IIS 虚拟目录,请确保它指向正确的目录并检查它设置的 ASP.NET 版本,确保它设置为 ASP.NET 2.0。

  • 清除所有的 bin/debug/obj。执行 Clean 解决方案,然后执行 Build Solution

  • 在文本编辑器中检查您的项目文件,并确保其查找全局文件的位置正确,有时它不会更改目录。

  • 从解决方案中删除全局并在保存并关闭后将其添加回来。确保 ASPX 文件中的所有脚本标记都指向正确的后面。

  • 您可以尝试运行 Convert to Web Application 工具,该工具会重做所有代码和项目文件。

  • IIS Express 使用了错误的根目录(请参阅VS 2012 launching app based on wrong path 中的答案)

请确保在尝试后关闭 VS。

这些是我知道可以尝试的一些事情。希望其中一个对你有用。

【讨论】:

  • 是的,随着时间的推移,我一直在使用它们,其中一个通常可以解决问题。
  • 删除并重新添加 Global.asax 对我有帮助。
  • 我的 Bin 和 Obj 文件夹已从项目中排除...只需使用解决方案资源管理器中的“显示所有文件”按钮,然后右键单击并包含这些文件夹。谢谢。
  • @kad81 Bin 和 Obj 文件夹应该从项目中排除。
  • 是的,谢谢。工作了一个款待。我已经清除了我的 bin 目录以解决另一个问题,但没有注意到我将构建设置为调试以外的其他内容
【解决方案3】:

我发现当 Global.asax.(vb|cs) 没有正确转换为部分类时会发生这种情况。

最快的解决方案是像这样(在 VB.Net 中)用 [方括号] 将类名 'Global' 括起来:

Public Class [Global]
    Inherits System.Web.HttpApplication
    ...

【讨论】:

  • 我在别处读过这篇文章,但我的所有文章都不是局部的,它们都有效。
【解决方案4】:

删除现有的 global.asax 文件并添加一个新文件可以清除此错误。这对我有用很多次。

【讨论】:

  • 谢谢。您的提示为我节省了很多时间。
【解决方案5】:

如果您使用的是 Visual Studio 2010,则在更改配置部署类型时可能会出现此错误。这 3 种类型是 x86、x64 和混合模式。 将解决方案中的所有项目更改为混合模式设置应该可以解决该问题。如果您是 ASP.NET 网站,请不要忘记删除 bin、Lib 文件并更改临时目录输出。

【讨论】:

    【解决方案6】:

    这只是发生在我身上,在尝试了其他所有方法之后,我碰巧注意到应用程序池设置为 .Net 1.1 的错误消息。我将应用升级到 2.0,转换为 Web 应用,但从未更改应用池:

    版本信息: Microsoft .NET Framework 版本:1.1.4322.2490; ASP.NET 版本:1.1.4322.2494

    【讨论】:

      【解决方案7】:

      这个问题让我彻底疯了,我找不到任何有用的东西来解决它。这可能不是大多数人遇到这个问题的原因,但我只是希望其他人能从这个答案中受益。

      导致我出现问题的原因是 <assemblies> 配置部分中的 <clear /> 语句。我之所以添加它是因为在生产中它是必需的,因为在同一个托管计划上有多个不相关的应用程序,我不希望它们中的任何一个受到其他应用程序的影响。更正确的解决方案是在发布时使用 Web 配置转换。

      希望这对其他人有帮助!

      【讨论】:

        【解决方案8】:

        更改地址的端口号 (localhost:) 对我有用 :)

        【讨论】:

        • 请不要添加“谢谢”作为答案。相反,请为您认为有帮助的答案投票。
        • 对不起:还没有 50 声望来评论别人的帖子 :)
        【解决方案9】:

        我通过简单地从调试切换到发布,启动程序(它在发布时工作),然后切换回调试来修复了这个错误。

        我几乎尝试了所有其他方法,包括重新启动 Visual Studio,但没有任何效果。

        【讨论】:

          【解决方案10】:

          我在将应用程序安装到服务器时遇到了同样的问题。它最终成为安装程序项目,它没有安装运行 Web 应用程序所需的所有文件。我试图找出它被破坏的地方,但最后我不得不将项目恢复到以前的版本来修复它。希望这对某人有所帮助...

          【讨论】:

            【解决方案11】:

            就我而言,项目中用于编译 Web 应用程序的 AfterBuild 目标是导致此错误的原因。

            更多信息请见here

            【讨论】:

              【解决方案12】:

              删除 global.asax 文件中的 Language="c#" 为我解决了这个问题。

              【讨论】:

                【解决方案13】:

                在我的例子中,我在本地复制了一个在线站点,并在 Utildev Cassini for asp.net 2.0 中本地收到此错误。原来我只在本地复制了global.asax,并没有复制它的App_code conterpart。复制它可以解决问题。

                【讨论】:

                  【解决方案14】:

                  当您尝试访问 Microsoft Dynamics NAV Web 客户端时,您会收到以下错误。 无法从程序集“System.ServiceModel,版本=3.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”加载类型“System.ServiceModel.Activation.HttpModule” 如果运行 IIS 的计算机上有多个 .NET Framework 版本,并且 IIS 是在 .NET Framework 4.0 之后或在 Windows Communication Foundation 中注册服务模型之前安装的,则可能会出现此错误。

                  对于 Windows 7 和 Windows Server 2008,使用 ASP.NET IIS 注册工具 (aspnet_regiis.exe) 注册正确版本的 ASP.NET。有关 aspnet_regiis.exe 的详细信息,请参阅 Microsoft 网站上的 ASP.NET IIS 注册工具。

                  试试这个解决方案 https://www.youtube.com/watch?v=LNwpNqgX7qw

                  【讨论】:

                    【解决方案15】:

                    确保您项目的编译后的 dll 放置在正确的 bin 文件夹中。

                    就我而言,当我将子项目的编译目录更​​改为主项目的 bin 文件夹时,它可以工作。

                    【讨论】:

                      【解决方案16】:

                      在我重命名应用程序时遇到此错误。我更改了项目的名称和类的名称,但忽略了更改“我的项目”或项目属性中的“程序集名称”或“根命名空间”。

                      【讨论】:

                        【解决方案17】:

                        删除 obj、bin 文件夹并重建解决了我的问题

                        【讨论】:

                          【解决方案18】:

                          我遇到了这个问题。

                          I solved it with this solution,通过授予 CREATOR OWNER 对 Windows Temp 文件夹的完全权限。出于某种原因,该用户根本没有分配任何权限。可能是因为前段时间我在电脑上运行了 Combofix。

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 2012-08-14
                            • 2015-08-28
                            • 2016-03-05
                            • 2014-08-09
                            • 2015-04-16
                            • 2017-04-13
                            • 2014-01-03
                            • 2013-12-13
                            相关资源
                            最近更新 更多