我遇到一个错误,我现在暂时无法解决。我想知道是否有人可以帮助确定此错误的原因?我是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" %>
答案 0 :(得分:31)
尝试将 CodeBehind 替换为 CodeFile
答案 1 :(得分:8)
无法加载类型
表示无法加载类型。 (在这种情况下,“类型”指的是Inventory1.Global
)。类型位于已编译的DLL中。因此,DLL无法使用,已过期,或者不包含具有给定名称的public
类型。
一些可能的原因是:
namespace Inventory1 { public class Global { ... } }
注意:避免使用Inventory1
等名称。他们暗示有一个Inventory2
,Inventory3
等,这是不好的做法,因为它们是明确的,而且不是很具描述性。此外,Global
非常模糊,可能会引起global namespace的混淆。
Inventory1
,而不是INVENTORY1
。)public
。 如果我不得不猜测,我会把钱花在编译错误上。与PHP和其他解释型语言不同,C#必须先成功编译才能使用。
答案 2 :(得分:4)
答案 3 :(得分:4)
我遇到了这个错误,只需要重建项目
答案 4 :(得分:3)
由于它只发生在IISexpress上,因此将bin \ Debug \的输出更改为bin \解决了它。将标签CodeBehind更改为CodeFile只会产生更多问题。
答案 5 :(得分:1)
这发生在我本地的机器上。问题是IISExpres配置不正确。 如果您在本地环境中遇到此问题(Visual Studio调试运行),请检查IIS Express配置文件。确保您的本地站点/应用程序路径指向正确的位置。
配置文件名为applicationhost.config
。它存储在这里:
我的文件&gt; IIS Express&gt;配置。通常(并非总是)这些路径之一将起作用:
答案 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)来实现的。