Asp.net mvc 错误:«;无法加载类型mvcapapplication»;

Asp.net mvc 错误:«;无法加载类型mvcapapplication»;,asp.net-mvc,Asp.net Mvc,我发现了错误 无法加载类型MVCapApplication 当我尝试运行我的网站时 如何更正它?只需在您的解决方案上手动构建即可 如果您使用的是本地IIS,请尝试在IIS管理器中删除网站注册,然后手动重新创建它。确保您不必像文件->打开网站那样打开MVC项目使用文件->打开项目 每次保存动态编译的文件(ascx、aspx等)时,我都会遇到这个问题。我等了大约8-10秒,然后它就消失了。这太烦人了 我认为这可能是IIS Express的问题,所以我尝试使用内置的开发服务器,但在保存文件后仍然收到它

我发现了错误

无法加载类型MVCapApplication

当我尝试运行我的网站时


如何更正它?

只需在您的解决方案上手动构建即可


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

确保您不必像文件->打开网站那样打开MVC项目使用文件->打开项目

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


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

我遇到了同样的错误,尽管我做了这里提到的所有事情,但其他地方都没有任何效果。原来我是从项目的一个不同名称的早期版本复制了global.asax.cs的源代码。所以
名称空间测试
应该是
名称空间测试.WebUI
。当然是个愚蠢的错误,写这篇文章我有点不好意思!但是写这篇文章的目的是希望其他人的类似错误也能让他检查这一琐碎的方面。

我的解决方案:因为问题是我造成的!我已经更改了Global.asax.cs中的名称空间


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

我收到此错误,因为尽管有一些编译时错误,我仍在运行项目。我没有注意到这一点。

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


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

[摘自问题]

如果出现以下错误:“无法加载类型MVCAPApplication”,请查看项目的输出路径,并确保将其设置为“bin\”。问题是,如果文件不在默认位置,AspNetCompiler将无法找到这些文件


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

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


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

在过去十年中,我已多次看到此问题,现在又看到了。有许多问题会导致相同的错误

一个原因是文件重命名。如果您使用的是.cshtml文件,请检查这些文件和Views\web.config文件中的所有名称空间。对于web表单,请重命名Default.aspx(相关的.cs和设计器文件将自动重命名)。代码隐藏会更改,但标记中的继承行不会更改。手动更改它。仔细检查设计器页面。有时(VS2005-8?)设计器页面不反映名称空间中的更改。在2010+中没有看到过这种情况

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

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


HTH

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

  • 转到项目属性
  • 在“构建”选项卡上,将输出路径设置为“bin”

  • 对我有用的是重新启动VisualStudio


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

    听起来很愚蠢,尝试了所有操作,但都不起作用,最后重新启动VS2012以查看其再次工作。

    我在开发环境I中遇到了这个令人沮丧的错误简单地说,如果解决方案中有多个web项目/站点:请确保尝试访问网站的端口与在“项目属性->web”中配置的端口相同

    在我的例子中,导致错误的原因是,我使用不同的端口访问网站(在浏览器中),而解决方案中的项目被分配了另一个端口。为了进一步解释,我的解决方案Website1中有两个网站项目(Visual Studio在ISS中分配了端口8001)和Website2(Visual Studio在ISS中分配了端口8101).因此,尽管我在构建网站1,但我还是试图使用locahost:8101访问该网站


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

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

    示例global.asax:

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

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

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


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

    如果更改名称空间,这种情况可能会经常发生。返回名称空间的名称,j
       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 );
                }
            }
        }
    
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files