我收到错误
无法加载类型MvcApplication
当我尝试运行我的网站时。
如何纠正?
我收到错误
无法加载类型MvcApplication
当我尝试运行我的网站时。
如何纠正?
Answers:
听起来很愚蠢,尝试了所有操作,但它没有起作用,最后重新启动了VS2012,使其再次起作用。
-对我来说,解决方法是更改“构建”选项卡中的输出路径。我将输出路径更改为bin\
,错误消失了。
-另一个解决方法可能是您设置了错误的启动项目。
我做了同样的错误,尽管做了这里提到的所有事情,其他地方却无济于事。原来,我从项目的先前版本复制了global.asax.cs的源代码,而该版本具有不同的名称。因此,namespace Test
应该已经namespace Test.WebUI
。当然这是一个愚蠢的错误,并且为编写此文件而感到尴尬!但是写信希望其他人也可能犯同样的错误,这也可能导致他去检查这个琐碎的方面。
只需在您的解决方案上进行手动构建即可。
如果您使用的是本地IIS,请尝试在IIS管理器中删除网站注册,然后手动重新创建。
[摘自问题]
如果出现此错误:“无法加载类型MvcApplication”,请查看项目的输出路径,并确保将其设置为“ bin \”。问题是,如果文件不在默认位置,则AspNetCompiler找不到文件。
更改输出文件夹的另一个副作用是您将无法调试代码,并且会显示一条消息,指出找不到组装信息。
bin
为bin\Debug
,bin\Release
但是旧文件仍在我的bin
文件夹中,所以我没有发现任何问题。当然,如果您进行干净签出并生成这些文件,那么这些文件就不存在了,因此它会崩溃。
我的解决方案:因为我造成了问题!我已经在Global.asax.cs中更改了名称空间
您还需要在Global.asax中更改Inherits属性值。
检查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 );
}
}
}
对我来说,解决方案是右键单击Mvc项目,选择属性,然后单击创建虚拟目录。
弹出一个消息框,指出该项目已映射到错误的文件夹(它显示了另一个TFS项目的文件夹。它提供了将其映射回正确文件夹的选项。
我已经bin/
在构建选项卡中了。我从该项目的另一个副本中获得了global.asax,但是没有成功。
最终对我有用的解决方案是删除该bin/
文件夹并创建一个具有相同名称的新空文件夹。
我知道已经有很多解决方案,但是我想我只想说为我解决的办法。
我的配置设置为“调试”。将其更改为Release对我有用。
我陷入了这个。我已经阅读并测试了之前给出的所有可能的解决方案。检查构建路径,构建,重建,清理,重新启动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
而且所有人都在工作...奇怪的是这个问题有如此不同的可能解决方案...
在过去的十年中,我已经看过很多次了,只是又有一次。有许多问题导致相同的错误。
原因之一是文件重命名。如果您使用的是.cshtml文件,请检查这些文件中以及Views \ web.config文件中的所有名称空间。对于Web表单,重命名Default.aspx(相关的.cs和设计器文件会自动重命名)。后面的代码会更改,但标记中的Inherits行不会更改。手动更改。仔细检查设计器页面。有时(VS2005-8?)设计器页面无法反映名称空间的更改。在2010年还没有看到这个。
另一个问题是,它们都可以在VS或本地PC上运行,而在部署时却不能。这可能是因为部署环境的结构不同。例如,如果将代码放置在应用程序文件夹下的虚拟目录中,则会发生该错误,但是如果您创建一个新的应用程序文件夹并将所有文件都放置在该目录中,则不会发生该错误。我不明白这一点,因为我已经为新的子文件夹/虚拟文件夹设置了相同的权限(或者,我认为),并且(我认为)应用程序池对于给定应用程序文件夹中的所有内容应该都相同。
就我而言,我还有一个bin文件夹,其中包含从IIS服务器上的其他程序集更新的程序集。同样,确保将它们运行在单独的应用程序文件夹中会导致成功。
高温超导
我在Visual Studio的开发环境中遇到了一个令人沮丧的错误,事实证明原因很愚蠢。简而言之,如果您在解决方案中有多个Web项目/站点:请确保您尝试访问该网站的端口与在Project Properties-> Web中配置的端口相同。
就我而言,该错误是由于在解决方案中的项目分配了另一个端口时,我使用其他端口访问网站(在浏览器中)而引起的。为了进一步说明,我在解决方案中有两个网站项目Website1(Visual Studio分配了ISS中的端口8001)和Website2(Visual Studio分配了ISS中的端口8101)。因此,即使我正在构建Website1,我仍试图使用locahost:8101访问该网站。
现在我终于意识到了这个问题,我看到@StingyJack的评论也解决了类似的问题。
确保global.asax.cs中的名称空间与Webapp的名称空间匹配
对我有用的是重新启动Visual Studio。
我尝试手动重建,执行清理和重建以及删除bin文件夹,所有这些都不起作用。我的输出路径已设置为bin \
如果更改了名称空间,请确保右键单击并进行重构。
在某些情况下,默认情况下不会将您创建的新项目设置为生成。如果右键单击解决方案,请选择Properties
,然后选择Configuration Properties
|。Configuration
节点,并确保您的项目在该Build
列下具有选中标记。在正常情况下,我发现默认情况下会发生这种情况。在其他情况下(我碰巧有一个稍微复杂的Web Api / Xamarin Android和iOS / Mvc 5解决方案,表现出这种行为)没有复选标记。
这与其他答案有关-如果Web Projet的程序集不可用,则会出现此错误。但这可能是常见的情况,尤其是因为您实际上在编译解决方案时-只是没有构建项目。
我收到此错误的原因是我的版本控制已设置为忽略我的bin文件夹。非常愚蠢,但也许其他人会受益。