分析器错误消息:无法加载类型'TestMvcApplication.MvcApplication'

时间:2009-10-21 05:07:33

标签: .net asp.net-mvc

我在其中一台生产服务器上收到以下错误。不知道为什么它在DEV服务器上工作?

  

分析程序错误   说明:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。

     

分析程序错误消息:无法加载类型'TestMvcApplication.MvcApplication'。

     

来源错误

     

第1行:<%@ Application Codebehind =“Global.asax.cs”Inherits =“TestMvcApplication.MvcApplication”Language =“C#”%>

     

源文件:/global.asax Line:1

不确定是否有人在此之前及其如何解决之前遇到此错误,但我已经到了最后。 任何帮助将不胜感激。

我还需要提一下,这是已发布的代码,因此所有代码都已编译完成。 我的编译器设置可能有问题吗?

39 个答案:

答案 0 :(得分:168)

其他答案都不适合我。我通过更改Web项目的输出路径来修复错误。我把它设置为bin \ debug但是web项目不起作用,除非输出路径设置为简单" bin"

答案 1 :(得分:96)

我有过几次。这是特别令人沮丧的,因为它是正确的,并且错误消息不知道可能是什么问题。

要解决此问题,请右键单击项目标题,在本例中为“TestMvcApplication”,然后单击构建

这会强制代码在运行之前进行编译。不要问我为什么,但这对我来说是100%的解决方案。

答案 2 :(得分:24)

我发现当你被迫使用配置管理器在x86或标准项目“开箱即用”设置以外的任何设备上运行时,IDE会在web的bin文件夹下创建一堆子目录项目

一旦开始发生这种情况,如果Cassini服务器正在运行,那么该项目将无法正常运行。

我通过进入Web项目属性修复了它 - >构建设置并将输出路径更改为bin \

然后重建并且一切正常。

答案 3 :(得分:9)

经过长时间的努力,我遇到了真正的问题。

我用来将文件上传到托管环境的FTP客户端损坏了程序集。

我改变了我的FTP客户端,一切都按预期工作。

答案 4 :(得分:9)

我看起来像是一样的错误。我从很多页面尝试了很多建议,但发现问题是我将网站设置为.Net的错误版本

无论有多少重新编译或人们说'配置问题',都没有人指出需要检查.net版本。

答案 5 :(得分:9)

我尝试了以上所有解决方案,但没有运气。在web.config中添加行<add assembly="*" />为我修复了它。 (您也可以添加到相应.NET框架版本的machine.config或root web.config文件,我没有尝试过)感谢MS支持解决方案。

答案 6 :(得分:9)

我遇到了同样的问题:我的原因是因为web项目的平台目标是x86。我在64位机器上运行;解决方案中的其他项目设置为64位。

要检查设置,请右键单击该项目,然后选择“属性”。在“构建”选项卡上,检查“平台目标”的值。

同时检查解决方案的构建配置(Build菜单&gt; Configuration Manager),检查所有项目是否都在同一平台上构建。

在这两种情况下,请确保检查调试和发布模式的设置 - 否则您将在机器上运行它,但在部署时却不行!

答案 7 :(得分:8)

当我重命名我的项目/解决方案时,IT就发生了。 转到Windows资源管理器中的项目文件夹(退出VS)。 找到并打开文件Global(也许你会找到2个文件,打开没有“.asax.cs”扩展名),并用正确的路径编辑错误行。 祝你好运!

答案 8 :(得分:7)

我几天前遇到了完全相同的问题 - 据我所知,这是运行32位Web应用程序的64位IIS的问题。我们将生产服务器更改为32位,这个问题就消失了。

答案 9 :(得分:5)

确保Web项目属性中的默认命名空间与Global.asax.cs中的命名空间相同。我修改了默认命名空间,使其成为一个子名称空间,更改它为我解决了这个问题。

答案 10 :(得分:4)

我遇到过这种情况的唯一一次是服务器上没有安装MVC框架。可能是这样吗?

Views \ Web.config中缺少的Pages部分也可能有问题。

答案 11 :(得分:4)

为了完整起见,我列出了我的问题以及我是如何解决的:

如果您喜欢我并且通过web.config拥有httphandlers并且您从global.asax.cs(可能在Session_Start()中)重定向,就像我的情况一样,如果您的启动项目没有定义引用,则会出现此错误它指向你的httphandler指向的目标!! (但你不会得到构建错误,只是运行时错误)

所以:

  1. 仔细检查您的web.config是否有任何外部项目
  2. 仔细检查您的启动项目是否包含所需的所有引用。
  3. 干杯。

答案 12 :(得分:3)

我遇到了同样的错误,您的解决方案都没有帮助。我认为我的问题只是我为项目选择的名称。我已经命名了我的项目'interface',当我得到解析错误时它说它无法加载:

  

第1行:&lt;%@ Application Codebehind =“Global.asax.cs”Inherits =“ @interface .MvcApplication”Language =“C#”%&gt;

出于某种原因有“@”符号的地方。我猜测'interface'这个词是为其他东西保留的,它添加了@符号,但这显然打破了一些东西。我删除了该项目并使用不同的名称创建了一个没有问题的新项目。

答案 13 :(得分:3)

这是另一个:

  1. 我一直在使用localhost:12345的web api项目。
  2. 我从包含同一项目的源代码管理中检出了一个不同的分支。
  3. 我在分支上运行项目并收到错误。
  4. 我转到“属性&gt;网络&gt;项目网址”并点击“创建虚拟目录”
  5. 出现了一个对话框,告诉我该网址已映射到另一个目录(原始项目的目录)。
  6. 我点击了Okay并重新映射了虚拟目录。
  7. 错误消失了。
  8. 我希望能在某个地方帮助某人:)

答案 14 :(得分:2)

我尝试了上述大部分答案,但他们没有工作。出于某种原因,关闭并重新打开VS为我解决了问题。

答案 15 :(得分:2)

当我在IIS中将包含文件的物理文件夹转换为应用程序时,我的问题得以解决。右键单击&gt;转换为应用程序。

答案 16 :(得分:2)

确保Global.asax文件中的命名空间与Global.cs文件中的命名空间匹配,即

Global.asax:Some.Website.Webapplication

Global.cs:Some.Website(减去'WebApplication')

答案 17 :(得分:2)

这个问题很复杂,因为很容易将根本原因与任何直接原因混淆起来。

在我的情况下,直接原因是该解决方案配置为使用NuGet Package Restore,但服务器未连接到Internet,因此NuGet在第一次构建时无法下载依赖项。

我认为根本原因只是解决方案无法正确解析依赖关系。它可能是错误的路径配置,或错误版本的程序集,冲突的程序集或部分部署。但在所有情况下,错误只是说它无法找到global.asax中指定的类型,因为它无法构建它。

答案 18 :(得分:2)

我遇到了很多问题和错误,上面的一些答案有所帮助,但让它适用于我的最后一招是:转到你的项目,点击属性。

转到打包/发布Web选项卡,确保将配置设置为发布和平台到所有平台。

最后确保“要部署的项目(适用于所有部署方法)”设置为“此项目文件夹中的所有文件”

然后它对我来说很好。

答案 19 :(得分:1)

对我来说,这是因为我暂时从项目中排除了该文件。我只是将它包含在项目的后面,然后才起作用。

答案 20 :(得分:1)

在我的案例中,我的项目中缺少System.Web.MVC的引用。但添加引用后问题是一样的,所以我检查了我的Bin文件夹的属性,它是ReadOnly。在使其可写之后,一切正常。

答案 21 :(得分:1)

我收到错误,因为我将应用程序部署为虚拟目录,而我得到解析器错误“无法加载类型”然后我将应用程序部署为网站,我没有再次收到该错误。

答案 22 :(得分:0)

在开发服务器上- 在解决方案平台中使用 AnyCPU 并重新构建。 请参考此屏幕截图。 AnyCPU

答案 23 :(得分:0)

对我来说,我的项目中包含了一个必须在32位环境中运行的DLL。

服务器配置为以32位模式运行网站,但我无法在64位计算机上运行该应用程序,因为未指定localhost文件夹以32位运行模式。

答案 24 :(得分:0)

右键单击并从我的Web API 2解决方案中排除global.asax后,我收到了解析器错误。

事实证明,您必须右键单击并删除它,而不是仅仅排除它。

删除后,我不再收到解析器错误。

答案 25 :(得分:0)

其他答案都没有为我解决这个错误 我找到了一个有效的解决方案,我建议那些处于相同情况的解决方案:

  1. 关闭Visual Studio
  2. 浏览到Projects \ yourProject \ yourProject
  3. 重命名Web.Debug.config和Web.Release.config
  4. 重建并运行您的应用程序

答案 26 :(得分:0)

确保所有自己引用的dll在“属性”窗口中将“复制本地”设置为True,除非它们位于GAC中。框架dll没有必要这样做。

答案 27 :(得分:0)

我也遇到了同样的问题,并且IIS Express的配置文件没有指向网站的正确bin目录。因此,编辑将在Documents / IISExpress / config中的Config文件修复了该问题。只需指向Site标记中的正确物理路径,如下所示。

abc variable;
volatile unsigned int *add;
add = &variable;

答案 28 :(得分:0)

我通过将项目属性从Web&gt;&gt;特定端口&gt;&gt; 55555切换到自动分配端口来解决此问题

答案 29 :(得分:0)

尝试向工作流服务添加服务引用时出现此错误。最后我不得不将它添加到我的web.config。

http://blogs.msdn.com/b/rjacobs/archive/2011/12/16/how-to-enable-service-metadata-for-workflow-services.aspx

如您所见,我在最终实体框架标记之后和最终配置标记之前添加了它。

</entityFramework>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IService" />
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:8006/Sample/Service1.xamlx"
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService"
        contract="ServiceReference1.IService" name="BasicHttpBinding_IService" />
    </client>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="True"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

答案 30 :(得分:0)

花了将近2个小时后,我只需从.csproj文件中删除一行即可解决此问题。

   <PlatformTarget>AnyCPU</PlatformTarget>

答案 31 :(得分:0)

我通过重命名很多东西解决了我的问题。 如果您的问题是通过复制像我这样的现有项目创建一个新项目引起的,那么您可以尝试这些步骤。

  1. 重命名解决方案 - 在解决方案资源管理器中
  2. 重命名项目 - 在解决方案资源管理器中
  3. 重命名命名空间 - 代码
  4. 重命名程序集名称和默认名称空间 - 在项目&gt; property&gt; application
  5. 重命名AssemblyTitle并更新GUID - 在项目&gt;属性&gt;应用程序&gt; aseembly信息
  6. 重建并运行
  7. 其中一些步骤可能毫无价值,但遵循它们都可以解决您的问题。

答案 32 :(得分:0)

如果Andy Copley的回答对您有用,但只是重建解决方案不起作用,那么请转到Project |项目依赖项并确保其中包含Global.asax.cs文件的项目依赖于解决方案中的所有其他非测试项目。

答案 33 :(得分:0)

我从未真正深入了解导致它的原因。我觉得某个地方我一定错过了一些文件。发布到新服务器后,我收到了错误消息。最终我从工作站点复制了该站点。然后该网站工作,所以进一步发布到新服务器。

答案 34 :(得分:0)

我遇到了同样的问题。 尝试:

右键单击项目并选择Clean,然后再次右键单击它并选择Rebuild并运行项目以查看它是否有效。

答案 35 :(得分:0)

对我而言,问题仅出在网站内的某些(长)链接上,并被追踪到URLScan,其URL长度限制为260.

答案 36 :(得分:0)

我的问题是我试图在已经有web.config文件的文件夹的子文件夹中创建一个ASPX Web应用程序,并且

所以我在Visual Studio中打开了父文件夹作为网站(打开&gt;网站)我能够添加一个没有解析/加载问题的新项目ASPX页面。

答案 37 :(得分:0)

我遇到了类似的问题。

原因是我正在更改file.aspx.c并且必须进行干净的重建。之后一切正常。

答案 38 :(得分:0)

请按照以下步骤操作:

  1. 构建
  2. 配置管理器
  3. 放置AnyCPU项目
  4. 返回生成
  5. 准备就绪,之后只需按照相同的步骤将其传递给x86或x64