不能加载类型mvcapplection »

我得到了错误

无法加载类型mvcapapplication

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

如何纠正?

210375 次浏览

在解决方案上手动构建即可。

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

确保你不应该像File->打开网站那样打开MVC项目,而是使用文件- >打开项目

每次我保存一个动态编译的文件(ascx, aspx等)都会遇到这个问题。我等待8-10秒,然后它就消失了。这太烦人了。

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

我得到了同样的错误,尽管做了这里提到的所有事情,但没有任何工作。原来我从以前版本的项目中复制了global.asax.cs的源代码,该版本的名称不同。所以namespace Test应该是namespace Test.WebUI。这当然是一个愚蠢的错误,我有点不好意思写这个!但写这封信的目的是希望其他人的类似错误也能让他检查一下这个微不足道的方面。

我的解决办法是:因为问题是我制造的!我改变了Global.asax.cs中的命名空间

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

我得到这个错误是因为我正在运行项目,尽管有一些编译时错误。这一点我没有注意到。

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

-另一个修复可能是你有错误的启动项目集。

[摘自问题]

如果你得到这个错误:“无法加载类型MvcApplication”,查看你的项目的输出路径,并确保它被设置为“bin\”。问题是AspNetCompiler无法找到不在默认位置的文件。

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

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

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

在过去的十年里,我已经见过很多次了,现在又一次。有许多问题都会导致同样的错误。

一个原因是文件的重命名。如果您使用的是.cshtml文件,请检查这些文件和Views\web中的所有名称空间。配置文件。对于web表单,重命名为Default。Aspx(相关的.cs和设计器文件将自动重命名)。代码更改了,但是标记中的Inherits行没有更改。手动更改。仔细检查设计师页面。有时(VS2005-8?)设计器页面不反映名称空间的更改。2010年还没见过这种情况。

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

在我的例子中,我也有一个bin文件夹,其中包含从IIS服务器上的其他程序集更新的程序集。同样,确保这些文件在单独的应用程序文件夹中运行才会成功。

HTH

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

我有同样的问题,解决它与以下步骤

  1. 转到项目属性
  2. 在“Build”选项卡上,将输出路径设置为“bin\”

对我有效的是重新启动Visual Studio。

我尝试手动重建,执行清理和重建,并删除bin文件夹,所有这些都没有工作。我的输出路径已经设置为bin\

我的问题是我还没有建立这个项目(糟糕)。不知道这是否真的有助于任何人,但只要确保在单击链接之前构建一切即可。

尽管听起来很傻,但我尝试了所有的方法,它都不工作,最后重新启动VS2012,看到它又工作了。

我尝试了很多建议,但对我有效的是使用Visual studio的“发布”功能(在Build选项卡中)。我只是使用FTP部署选项将比特与我的FTP信用一起发送到我的服务器。然后我将IIS指向该目录。当然,要检查应用程序池中是否有正确的框架。

我在Visual studio的开发环境中遇到了这个令人沮丧的错误,结果发现原因很愚蠢。简而言之,如果您在解决方案中有多个web项目/网站:请确保您试图访问网站的端口与项目属性-> web中配置的端口相同

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

现在我终于意识到了问题所在,我看到@StingyJack的评论也提到了类似的问题。

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

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

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

解决方案是到Project/Properties/Web/Servers,然后单击Create Virtual Directory

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

删除站点bin文件夹的内容(使用文件资源管理器进行此操作)。重建。

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

这与其他答案相关——如果你的web项目的程序集不可用,你会得到这个错误。但这可能是一个常见的场景,特别是因为您实际上编译了您的解决方案——项目只是没有得到构建。

我刚遇到ASP的问题。NET MVC Web API项目,没有一个解决方案做到了戏法。

我重新启动机器,设法解决了这个问题。我升级了Visual Studio 2013,不需要重新启动,但这可能是导致问题的原因。

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

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

我已经在我的构建选项卡中有bin/。我是全球化的。Asax从另一个项目的副本,但没有工作。

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

我知道这个问题已经有很多解决方案了,但我想我只提一下为我解决的方法。

我的配置被设置为调试。把它改成Release对我来说很管用。

我得到这个错误,因为我的版本控制已经设置为忽略我的箱子文件夹。非常愚蠢,但也许其他人会从中受益。

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

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

啊,这太烦人了。

在断电后得到这个错误,我回到了我的项目。

我试着重启VS。 我试着将输出路径设置为\bin。

但对我来说有效的是重新构建解决方案。

重建方案! !

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

无法加载类型MVCApplication1。MVCApplication

问题:网络。由于机器中的某些更新,配置可能已损坏。当我比较网络的时候。配置服务器web。然后我意识到所有的基本配置都缺失了,比如构建提供程序、模块、处理程序、名称空间等。

解决方案:替换web。配置从下面的位置与web。服务器上相同位置的配置(应用程序在服务器上运行正常)。 C:\Windows\ Microsoft.NET \ Framework \ v4.0.30319 \配置< / p >

我已经花了10多天了,所以我想这可能对某人有帮助。

尝试了所有其他的东西,然后我谷歌了我所得到的关于无法找到nuget.exe的错误…我想,好吧,我真的不需要……事实证明我做到了。我找到的解决方案:右键单击解决方案,然后单击启用NuGet包恢复

在我的情况下,问题是我重命名类全局到MvcApplication。当重命名时,它必须在所有地方进行更改,否则应用程序将在给定的命名空间中寻找全局类。

我又犯了这个错误,上面没有一个对我有用。我必须在.csproj文件中删除以下节点:重新加载VS,它工作了。

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

希望这能帮助到一些人。

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

我陷入了这种境地。我已经阅读并测试了之前给出的所有可能的解决方案。检查构建路径,构建,重建,清理,重新启动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

一切又开始运转了……奇怪的是,这个问题有这么多不同的解决方案……

我正在使用Azure Mobile App和这个问题是当我添加MVC控制器。如果你从Team Explorer(撤销)中删除所有文件,你将需要从解决方案文件夹中删除binobjGlobal.asax.cs

这种情况发生在我身上,因为我将Global.asax.cs (c#文件)添加到VB.net项目中,所以文件没有被编译,我必须使用文件的.vb版本才能工作和编译。

在我的例子中,问题是我更改了工作区名称,并且值显然是区分大小写的。

你必须检查action方法,在调用重载实参或无效实参的方法时是否有一个或多个方法 enter image description here < / p >
public string test(string a, string b){


}


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

我有同样的问题,我所做的是关闭我的应用程序,清理我的临时文件,再次重建应用程序。 它为我工作:)