错误:«无法加载类型MvcApplication»

时间:2009-07-13 15:54:12

标签: asp.net-mvc

我收到错误

  

无法加载类型MvcApplication

当我尝试运行我的网站时。

如何纠正?

42 个答案:

答案 0 :(得分:113)

尽管听起来很愚蠢,但尝试了一切并且它无法正常工作,最后重新启动VS2012以使其再次运行。

答案 1 :(得分:99)

- 对我来说,修复方法是在构建选项卡中更改输出路径。 我将输出路径更改为bin\,错误消失了。

- 另一个修复可能是您的启动项目设置错误。

答案 2 :(得分:82)

我得到了同样的错误,尽管做了这里提到的一切,其他地方也没有用。原来我已经从具有不同名称的项目的先前版本复制了global.asax.cs的源代码。所以namespace Test应该是namespace Test.WebUI。当然是一个愚蠢的错误,写这个有点尴尬!但写作希望其他任何人的类似错误也可能导致他检查这个微不足道的方面。

答案 3 :(得分:51)

只需手动构建解决方案。

如果您使用的是本地IIS,请尝试在IIS管理器中删除网站注册,然后手动重新创建。

答案 4 :(得分:31)

[摘自问题]

如果您收到此错误:“无法加载类型MvcApplication”,请查看项目的输出路径并确保将其设置为“bin”。问题是,如果文件不在默认位置,AspNetCompiler就无法找到它们。

更改输出文件夹的另一个副作用是您将无法调试代码,并且会显示一条消息,指出无法找到程序集信息。

答案 5 :(得分:14)

我遇到了同样的问题,并通过以下步骤解决了这个问题

  1. 转到项目属性
  2. 在“构建”标签上,将输出路径设置为“bin \”

答案 6 :(得分:12)

我的解决方案:因为我创造了这个问题!我在Global.asax.cs

中更改了名称空间

您还需要更改Global.asax中的Inherits属性值。

答案 7 :(得分:12)

啊,这很烦人。

停电后出现此错误,我回到了我的项目。

我试过重启VS. 我尝试将输出路径设置为\ bin。 我检查了我的名字空间。

但对我有用的是重建解决方案。

重建解决方案!!!

答案 8 :(得分:8)

检查global.asax中提供的代码隐藏信息。他们应该在其背后的代码中正确指向类。

示例global.asax:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>

背后的示例代码:

   namespace MyApplicationNamespace
    {
        public class MyMvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start( )
            {
                AreaRegistration.RegisterAllAreas( );
                FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
                RouteConfig.RegisterRoutes( RouteTable.Routes );
                BundleConfig.RegisterBundles( BundleTable.Bundles );
            }
        }
    }

答案 9 :(得分:6)

  1. 右键单击解决方案中项目失败的项目
  2. 卸载项目
  3. 重新加载项目
  4. 构建项目
  5. 重建解决方案

答案 10 :(得分:5)

如果您在IIS Express中托管并在两个不同的位置打开项目,则可能会看到此错误。

解决方案是转到Project/Properties/Web/Servers并点击Create Virtual Directory

答案 11 :(得分:5)

如果您的IIS Express使用相同的端口分配来托管旧的/不同的项目,则在Visual Studio中运行项目时也会发生这种情况。

要解决此问题,您可以更改此项目的端口分配或关闭IIS Express。

答案 12 :(得分:4)

我的解决方案是右键单击Mvc项目,选择属性,然后单击“创建虚拟目录”。

弹出一个消息框,提示项目已映射到错误的文件夹(它显示了不同TFS项目的文件夹。它提供了将其映射回正确文件夹的选项。 / p>

答案 13 :(得分:3)

在过去的十年里,我已经多次见过这种情况,并且再次拥有它。有许多问题会导致同样的错误。

一个原因是重命名文件。如果您正在使用.cshtml文件,请检查这些文件中的所有命名空间以及Views \ web.config文件中的所有命名空间。对于Web表单,重命名Default.aspx(相关的.cs和设计器文件会自动重命名)。代码隐藏发生了变化,但标记中的Inherits行没有。手动更改它。仔细检查设计器页面。有时(VS2005-8?)设计器页面不反映命名空间的变化。在2010年没见过这个。+。

另一个问题是当它在VS或本地PC上运行时,但在部署时则不行。这可能是因为部署环境的结构不相同。例如,如果将代码放在应用程序文件夹下的虚拟目录中,则会发生错误,但如果您创建新的应用程序文件夹并将所有文件放在那里,则不会发生此错误。我不明白这一点,因为我已经设置了具有相同权限的新子/虚拟文件夹(或者我认为)和(我相信)应用程序池应该对给定应用程序文件夹中的所有内容都一样。

在我的情况下,我还有一个bin文件夹,其中包含从IIS服务器上的其他程序集更新的程序集。再次,确保这些在单独的应用程序文件夹中运行导致成功。

HTH

答案 14 :(得分:3)

我收到此错误是因为我在运行项目时遇到了一些编译时错误。我没有注意到。

答案 15 :(得分:3)

我知道已经有很多解决方案,但我想我会提到为我解决的问题。

我的配置设置为Debug。将它改为Release对我来说是个窍门。

答案 16 :(得分:3)

删除站点bin文件夹的内容(为此使用文件浏览器)。重建。

答案 17 :(得分:3)

我的构建标签中已经有bin/。我从项目的另一个副本获得了global.asax,但这并没有成功。

最终为我工作的解决方案是删除bin/文件夹并创建一个具有相同名称的新空文件夹。

答案 18 :(得分:2)

确保 global.asax.cs 中的命名空间与您的webapp的命名空间相匹配

答案 19 :(得分:2)

我陷入了这种境地。我已经阅读并测试过之前提供的所有可能的解决方案。检查构建路径,构建,重建,清理,重新启动IIS和VS2015,重新安装所有nuget包,逐个编译它们等,...

我突然想起VS在系统文件夹中保留了一些ASP临时文件......我想我应该试一试,毕竟,这可能不会更糟。所以我倒空了:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

所有人都在重新工作......很奇怪这个问题有不同的解决方案......

答案 20 :(得分:1)

我再次遇到此错误,以上都没有为我工作。我不得不删除.csproj文件中的以下节点:<VisualStudio>....</VisualStudio>。重装上阵VS并且有效。

仅供参考,VS能够重新创建节点,然后我在IIS中重新创建了网站(通过VS),它运行良好。

希望这会对某人有所帮助。

答案 21 :(得分:1)

我遇到了这个问题,我看到了各种各样的答案,但没有接受任何答案。我稍后发现,在尝试运行之前简单地构建网站解决了我的问题。

答案 22 :(得分:1)

我收到此错误是因为我的版本控制已设置为忽略我的 bin 文件夹。非常愚蠢,但也许其他人会受益。

答案 23 :(得分:1)

答案 24 :(得分:1)

在某些情况下,您创建的新项目默认情况下不会设置为构建。如果右键单击解决方案,请选择Properties,然后选择Configuration Properties |左侧的Configuration节点,确保您的项目在Build列下有复选标记。在正常情况下,我发现这种情况默认发生。在其他情况下(我碰巧有一些复杂的Web Api / Xamarin Android和iOS / Mvc 5解决方案表现出这种行为),复选标记不存在。

这与其他答案有关 - 如果您的网络专业版程序集不可用,则会出现此错误。但这可能是一种常见的情况,特别是因为你实际上已经编译了你的解决方案 - 该项目并没有建成。

答案 25 :(得分:1)

如果更改命名空间,可能会经常发生这种情况。返回命名空间的名称,就像以前一样,这应该可以使它工作!

答案 26 :(得分:1)

如果更改了命名空间,请确保右键单击并重构。

答案 27 :(得分:1)

我在Visual Studio的开发环境中遇到了这个令人沮丧的错误,结果原因很愚蠢。简而言之,如果您在解决方案中有多个Web项目/站点:确保您尝试访问该网站的端口与Project Properties-&gt; Web

中配置的端口相同

在我的情况下,错误是由于我使用不同的端口来访问网站(在浏览器中),而解决方案中的项目被分配了另一个端口。为了解释一下,我在我的解决方案Website1(在ISS中由Visual-Studio分配端口8001)和Website2(在ISS中由Visual-Studio分配端口8101)中有两个网站项目。所以即使我正在构建Website1,我也试图使用locahost访问该网站:8101。

现在我终于意识到了这个问题,我看到@ StingyJack的评论也解决了类似的问题。

答案 28 :(得分:1)

每次我保存一个动态编译的文件(ascx,aspx等)时我都会遇到这个问题。我等了大约8-10秒然后就消失了。这真令人讨厌。

我认为这可能是一个IIS Express问题所以我尝试了内置的开发服务器,并在保存文件后仍然收到它。我正在运行一个MVC应用程序,我也在使用T4MVC,也许这是一个因素...

答案 29 :(得分:1)

对我有用的是重启Visual Studio。

我尝试手动重建,执行清理和重建,以及删除所有无效的bin文件夹。我的输出路径已设置为bin \

答案 30 :(得分:0)

你必须检查action方法,在调用重载argumen或invalid argument的方法时是否有一个或多个方法 enter image description here

public string test(string a, string b){

}

public ActionResult x(){
     test(a) //test is need two arguments
}

答案 31 :(得分:0)

我刚刚遇到ASP.NET MVC Web API项目的问题,但没有一个解决方案可以解决这个问题。

我设法通过重启机器来解决问题。我升级到Visual Studio 2013,它不需要重启,但这可能导致问题。

答案 32 :(得分:0)

就我而言,问题是我更改了工作区名称,并且该值显然区分大小写。

答案 33 :(得分:0)

这件事发生在我身上,因为我将Global.asax.cs(C#文件)添加到了VB.net项目中,因此该文件没有得到编译,因此我不得不使用该文件的.vb版本才能正常工作,得到编译。

答案 34 :(得分:0)

我正在使用Azure Mobile App,问题出现在我添加MVC控制器的时候。如果您从Team Explorer(撤消)删除所有文件,则需要从解决方案文件夹中删除binobjGlobal.asax.cs

答案 35 :(得分:0)

我测试了这些东西中的每一个都没有用过。然后我记得我通过我的IIS本地实例运行该站点,并将我编译代码的目录移动到了。换句话说,我的IIS站点设置为查看有问题的旧目录。进入IIS并将站点的根目录更改为我的新目录显然解决了问题。

答案 36 :(得分:0)

在我的情况下,问题是我将类Global重命名为MvcApplication。重命名时必须在所有地方进行更改,否则app会在给定的命名空间中查找Global类。

答案 37 :(得分:0)

尝试了其他一切然后我用谷歌搜索了我无法找到nuget.exe的错误......我想,我真的不需要那个......原来我做了。解决方案我发现:右键单击解决方案,然后点击启用NuGet包恢复

答案 38 :(得分:0)

无法加载类型MVCApplication1.MVCApplication

问题:由于计算机中的某些更新,Web.Config可能已损坏。当我将web.config与服务器web.config进行比较时,我意识到缺少所有基本配置,如构建提供程序,模块,处理程序,命名空间等。

解决方案:使用来自同一位置的服务器的web.config替换以下位置的web.config(应用程序在服务器中正常运行)。 C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \配置

我花了超过10天,因此我觉得这可能对某人有帮助。

答案 39 :(得分:0)

我的问题是我还没有建立项目(哎呀)。不知道这对任何人是否真的有帮助,但只需确保在点击链接之前构建所有内容

答案 40 :(得分:0)

我尝试了很多建议,但对我有用的是使用Visual Studio中的“发布”功能(在“构建”选项卡中)。我只是使用FTP部署选项将我的FTP信号发送到我的服务器。然后我将IIS指向目录。当然,请检查您的应用程序池以获取正确的框架。

答案 41 :(得分:0)

我的问题是我有2个项目在同一个端口上运行。解决方案是更改端口并为新项目重新创建新的虚拟目录