我在一个MVC3项目上工作,收到以下错误:

解析器错误信息:无法加载类型“GodsCreationTaxidermy.MvcApplication”。

源错误:

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

我得到的错误是无法加载GodsCreationTaxidermy.Core.MvcApplication,但在这个屏幕截图中,核心部分没有显示在错误中:

有人对这个错误有什么想法或解决方案吗?


尝试修改全局变量。Asax文件(简单添加一个空格的地方),并重新运行。这将迫使内置的web服务器刷新和重新编译全局。asax文件。

也做一个清理和重建-应该修复问题


您的本地web服务器运行的代码与您实际使用的代码不同。确保你已经停止调试,停止你的本地web服务器,按照Peter的建议清理和重建,仔细检查你的全局。Asax和global.asax.cs,再试一次。

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


检查项目输出路径(项目属性/ Build)设置为bin而不是bin\Release或bin\Debug

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


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


这个问题,我解决了给文件夹的正确权限,以及从IIS检查。

当我在本地环境中测试时,我得到了每个人的许可。但是在发布模式下,我认为我们只允许ASP。网用户。


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


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


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


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


我关闭和重开了视觉工作室,它工作。


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

右键单击全局。asax文件,选择“打开”,然后选择“XML(文本)编辑器与编码”(其他编辑器也可以工作,但这是我使用的)。

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

<%MvcApplication" Language " ="C " %>)

以便它与应用程序类的实际全名相匹配。就是这样。

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


我发现在项目中更改命名空间,而没有在整个解决方案中重构它是我的问题。检查你的项目属性,看看你的命名空间是什么,确保排列整齐,全面。


我不得不去BUILD ->配置管理器,然后——咳咳——勾选我的项目旁边的复选框,以确保它实际上得到了构建。


我只是在一个MVC5应用程序上遇到了这个问题,没有什么对我有用。这发生在我试图将SVN还原到项目的旧版本之后。

我必须删除Global. asax.cs,然后通过右键单击项目->添加新项目-> Global来添加一个新的项目。asax和THAT最终解决了它。

只是觉得也许能帮到别人。


我不得不说,我尝试了这篇文章中的至少4条建议。没有一个成功。然而,我很高兴地告诉大家,我从备份中恢复过来了。只需要更新日志文件中最后的代码更改。花了不到10分钟。花了3倍的时间阅读这篇文章并尝试其他建议。对不起。

这是一个非常奇怪的错误。祝其他遇到这个小妖精的人好运。


我的问题是我没有在我的项目中包含global.asax.cs。因为我是从。net 4.5复制文件到4.0,所以我没有注释掉4.0中不需要的行。因为它不包括visual studio编译它无论如何没有问题。但是当我加入它时,它突出显示了导致问题的行。

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);
        }
    }
}

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


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


我正在开发一个旧的“基于文件夹的”ASP。NET web项目(我讨厌)-并发现这是我的修复:

创建一个App_Code文件夹(如果你还没有的话)

将Global.asax.vb文件移动到App_Code文件夹中

全局中的标记。Asax可以省略任何名称空间(至少对于这种类型的项目):

<%@ Application Codebehind="Global.asax.vb" Inherits="MyApp" Language="VB" %>

…其中“MyApp”是在Global.asax.vb中定义的类的名称


我花了整整一天的时间来解决这个问题。

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

¯\_(五)_/¯- Programming -¯\_(五)_/¯


无法加载项目的错误 首先修复你的错误,重建项目后,它的工作


对于我来说,web组装是GAC的一部分……因此,在构建后,它需要安装在GAC和它工作。


我遇到了这个错误消息,最终发现这个错误消息具有误导性。在我的情况下,似乎已经在IIS路由问题,导致全局。从web服务器上的另一个站点读取Asax,从而产生错误。

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

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


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

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

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

因此,如果您看到这个错误,并且清理/重建不起作用,打开项目的引用树,并检查感叹号。

同样,检查你的输出窗口是否有这样的消息:

The primary reference "C:\Projects\Business Objects 4\bin\Release\BusinessObjects.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”,并将目标框架版本更改为与您的子项目匹配的更高版本。

Visual Studio 2015会让你完全构建和运行包含这个问题的解决方案,这很令人恼火。这是自找麻烦!


我试过这里的所有方法,但都没用。我的项目是在VS 2013。我已经升级到VS 2015,并在2015年创建了我所有的新应用程序,但加载、编译、构建等所有在2013年构建的旧应用程序。

我最终在2015年加载了解决方案,它为我解决了这个问题。


我是这样解决问题的: 只需修复Global.asax中的命名空间。


有两种方法:

配置管理器将dll构建显示为'64'和'any cpu'构建的混合。 将它们都放在同一个构建中可以解决这个问题。 在分支之间切换时,IIS快速路径有时不会更新。右键单击任务栏中的“IIS Express”>显示所有应用程序,并验证路径是否指向正确的分支。


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

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


我花了好几天时间研究这个问题。我最终通过以下这篇文章中的建议解决了这个问题。

将平台目标更改为任意CPU。我目前没有这个配置,所以我必须去配置管理器并添加它。我专门为x64编译。仅凭这一点并不能解决错误。 将输出路径更改为bin\而不是bin\x64\Debug。在我改变平台目标之前,我已经尝试过几次了。它只会得到一个错误,因为格式无效而无法加载程序集。

要明确的是,在它开始工作之前,我必须做这两件事。我已经尝试了多次,但它从来没有解决,直到我做了两个。

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


“BUILD ->配置管理器和——嗯哼——勾选我的项目旁边的复选框,以确保它实际上得到了构建。” 然后在windows资源管理器中打开项目文件夹,按下选项并取消“只读”复选框。


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

这个问题有时会让我发疯,我不可避免地会在这里翻找答案。我怀疑有多种原因可以产生这种异常,这一次为我工作。


I faced the problem in VS 2017 out of no where, took my whole day going through 100 of solutions any of these didnt work. I then took my whole solution and started it on different machine having VS 2017 installation.. IT FINALLY WORKED. Than reinstalled VS 2017 on the original one and it started running on that too. I strongly recommend you try your solution on a different machine before wasting much time to debug it, bcz it is a BUG in VS 2017 as it seemed for me, have reported same to VS TEAM. Hope this helps any one in grief. Cheers.


对我来说,解决办法不是以上任何一种。 我必须删除(而不是重新创建)全局。和Global.asax.cs。 这些文件存在于文件夹中,即使它们在项目中没有被引用。 显然那个建筑还看见了他们。 因为我在Startup.cs中使用了OWIN, Global。Asax文件已经过时,删除它没有问题。


我最近在一个Web应用程序中经历了这种情况。 问题是一个nuget包带来了一个依赖: Microsoft.Net.Compiler和Microsoft.Code.Dom

它们支持多级编译器版本。

这将我的应用程序转换为ASP。NET网站而不是Web应用程序..我花了很长时间才解决这个问题——2.5天!!

我从Nuget管理器中删除了这些文件,删除了obj和bin目录中的文件-关闭studio -然后重新打开并重建项目。这就解决了问题

那是多么痛苦啊!!

我希望我在这一点上节省了一些时间!


Yes, I read all the answers. However, if you are me and have been pulling out all of what's left of your hair, then try checking the \bin folder. Like most proj files might have several configurations grouped under the XML element PropertyGroup, then I changed the OutputPath value from 'bin\Debug' to remove the '\Debug' part and Rebuild. This placed the files in the \bin folder allowing the Express IIS to find and load the build. I am left wondering what is the correct way to manage these different builds so that a local debug deploy is able to find and load the target environment.


我在一个非常古老的溶液中有这个。事实证明,真正的问题是这些项目构建到4.6.1,而不是其他被引用的dll构建到4.7.2。在将解决方案中的所有项目更改为4.7.2后,它成功构建并运行应用程序。


我用很简单的方法修好了它。你所要做的就是删除ProjectName\bin文件夹中的所有文件,然后从Visual studio顶部菜单栏Build->Rebuild Solution再次重建项目,你就完成了。现在试着运行这个项目。这个过程在Visual Studio 2022中为我工作。


重新创建虚拟目录为我解决了这个问题。

(在此之前,我尝试了这里列出的其他建议,如清理解决方案,删除bin文件夹,重建解决方案等。没有一个工作,直到我重新创建虚拟目录)

Debug ->调试属性-> Web ->创建虚拟目录


TL;DR:对我来说,在尝试了3天我能在这里找到的所有其他答案之后,最终的解决方案是在我的IIS应用程序池高级设置中将启用32位应用程序设置为True,然后重新创建临时ASP。并为我的IIS_IUSRS组增加“修改”和“写入”权限。

我尝试的步骤:

Completely clean and rebuild solution. Shut down and restart Visual Studio. Delete Temporary ASP.NET Files directories (C:\Windows\Microsoft.NET\Framework*). This is where my problems really started: I deleted too much. Reboot development machine. Remove .vs folder and rebuild solution. Recreate C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files. My projects are 64-bit applications, even though build platform is AnyCPU. Verify output directory was set to bin/ on web projects. Wipe out and check out a clean copy of my version control branch. Wipe out and clone a fresh copy of my version control repository. Run Windows update to latest versions of .NET Frameworks. Repair, uninstall, and reinstall .NET Frameworks 3.5 and 4.8. Uninstall and reinstall Visual Studio 2019 Professional. Uninstall and reinstall the Internet Information Services feature in Windows. Downgrade ASP.NET NuGet package and rebuild solution (issued reference errors due to changes in assemblies). Upgrade ASP.NET back to what my projects were using and rebuild solution. Recreate IIS virtual directory through web project's Web properties. Created "empty" Global.asax files. Restore my files after no change. Replace Codebehind="Global.asax.cs" with Codefile="Global.asax.cs". This started showing me load errors for references to assemblies that actually existed in the system. Enable 32-bit applications in IIS application pool. This started displaying an access error to a 32-bit temporary directory. Restore permissions to all Temporary ASP.NET Files directories (add all but Full Control). This finally got my web application working again.

我能够从网上找到的无数答案中拼凑出足够的信息。在搜索iis找不到引用的。net dll后找到了这个答案,我尝试了最后的几个步骤,让我再次工作,在我的第四天开始与这个令人难以置信的模糊问题作斗争。

如果有办法诊断出为什么全球。asax无法加载,而不是太通用的无法加载类型错误,没有详细信息。

这个故事的寓意:当清理临时ASP。NET Files目录,删除目录的内容,而不是目录本身。否则,可能会导致权限丢失。