【问题标题】:Parser Error: Server Error in '/' Application解析器错误:“/”应用程序中的服务器错误
【发布时间】:2012-07-20 17:36:43
【问题描述】:

我收到以下错误:“解析服务此请求所需的资源时发生错误。请查看以下特定的解析错误详细信息并适当地修改您的源文件。”

Parser Error Message: `Could not load type 'nadeem.MvcApplication'`.
Source Error:  Line 1:  <%@ Application Codebehind="Global.asax.cs" Inherits="nadeem.MvcApplication" Language="C#" %>

【问题讨论】:

  • 确保项目的 DLL 位于正确的路径中。您可以在项目外部的另一个文件夹中设置构建的输出路径,例如,当项目运行并在bin 文件夹中搜索DLL 时,它不会找到它们。
  • 如果是因为你改变了默认输出目录,你可以这样使用:stackoverflow.com/a/26237022/1900498
  • 你们都不会相信这一点,但我们解决方案中的这个项目没有在解决方案配置管理器中选择要构建,因此没有没有创建 DLL在 /bin !只需确保选择了您的项目以在配置管理器中构建......

标签: asp.net-mvc-3 code-behind


【解决方案1】:

由于您通常创建一个 MVC 项目,因此 Global.asax 标记具有以下内容:

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

您是否将 Global.asax.cs 放在另一个项目中?如果您已从 Global.asax 中删除 CodeBehind="..." 声明并更改 Inherits="..." 声明以引用 Global.asax.cs 文件中定义的正确命名空间和类名。

如果您尚未移动它,请尝试使用 Web 项目上的上下文菜单在 Visual Studio 中清理然后重建项目。当我收到此错误时,这对我有用。

【讨论】:

  • 这些都不适合我,我无法使用 Global.asax 文件夹编译我的应用程序。是否可以删除它并重新添加文件?
【解决方案2】:

右键单击您的Global.asax 文件,然后单击View Markup。您将看到属性Inherits="nadeem.MvcApplication"。这意味着您的Global.asax 文件正在尝试从nadeem.MvcApplication 类型继承。

现在双击您的Global.asax 文件,查看Global.asax.cs 文件中指定的类名是什么。它应该看起来像这样:

namespace nadeem
{
    public class MvcApplication: System.Web.HttpApplication
    {
    ....

如果没有,那么您将收到您收到的错误。 Global.asax 文件的 Inherits 属性中的值必须与派生自 System.Web.HttpApplication 的类型匹配。

【讨论】:

  • 我面临与上述相同的问题。无论您详细回答什么,所有事情都与您讨论的相同,但我的错误仍然相同
【解决方案3】:

正如凯文回答的那样。我正在更改我的 MVC 项目中的项目名称和命名空间。当我运行应用程序时,我得到了同样的错误“第 1 行:

要解决这个问题,我需要更新 Global.asax (Right Click -> View Markup) 中的命名空间,然后在 Inherits 属性中将其更新为“&lt;correct root namespace for MVC project&gt;.MvcApplication”。

【讨论】:

    【解决方案4】:

    只需将项目复制到另一个位置并运行它就可以了

    【讨论】:

      【解决方案5】:

      当我收到此错误时,是在我删除并重新克隆了一个 Git 文件夹之后;发生的事情是我忘记在 VS2010 中构建解决方案。一旦我建立它,一切都很好。有时它真的很简单。

      【讨论】:

      • 是的,我无缘无故地开始收到此错误,清理并重建解决方案,错误消失了。
      【解决方案6】:

      案例已解决,但如果您的项目正在构建到与 IIS_Virtual_Directory\bin 不同的目录并且缺少 dll,您也可能会收到此错误。

      【讨论】:

      • 我就是这样
      【解决方案7】:
      1. 转到项目属性
      2. 在页面底部查看输出路径
      3. 将路径更改为:bin\
      4. 保存并运行项目

      【讨论】:

        【解决方案8】:

        当我将项目源下载到两个位置时,我遇到了完全相同的问题。问题原来是通过下载源它改变了站点虚拟目录的位置,因为我没有重建第二个源,所以那里没有 DLL。

        1. 要解决此问题,请打开您要构建的项目并转到 网站属性(项目菜单)
        2. 创建虚拟目录 项目。
        3. 重建项目。

        固定

        【讨论】:

        • 这个“网站属性”在哪里?没找到,可以加个截图吗?
        • 这救了我。我将项目文件夹移动到磁盘上的其他位置,这一步修复了它!
        【解决方案9】:

        在我的情况下,我遇到了同样的错误。我正在使用 git 和 Source Tree 进行版本控制。在我的情况下,项目中启用了 git,但我没有使用 Visual Studio 来暂存我的提交等。我使用的是 Source Tree。这并不重要我使用什么问题是视觉工作室已将以下行放入我的 gitignore 文件中:

        #Build Results
        [Bb]in/
        

        那是忽略 bin 文件夹,所以我的 bin 文件夹永远不会被推送到服务器,一旦我删除了该行并提交了整个 bin 目录并将其推送到服务器,然后转到服务器并执行了 git pull . bin 文件夹出现了,一切都开始工作了!

        顺便说一句,我最终的 gitignore 文件(#Build 结果)部分最终看起来像这样:

        # Build results
        
        [Dd]ebug/
        [Rr]elease/
        x64/
        build/
        [Oo]bj/
        

        我仍然不确定是否需要将 Obj 文件夹推送到服务器,但现在一切正常。

        【讨论】:

          【解决方案10】:

          在我的解决方案中浏览了我的所有项目以将编译设置为输出到 bin\debugbin\release 之后,我开始遇到这个问题。我终于意识到启动项目(即带有global.asax的项目)只需要输出到bin

          【讨论】:

            【解决方案11】:

            在我的情况下,解决方案是下一个:

            1. 验证 Global.asax 的标记,在属性 Inherits 我有这个 Inherits="NameOfMyProject.Global"
            2. 然后,验证 Global.asax.cs 我发现了这个:

              公共类 Global_asax : System.Web.HttpApplication

            3. 因此,我在我的 Global.asax 中更改了 Inherits 属性,最后标记为下一个:

              Inherits="NameOfMyProject.Global_asax"

            4. 另外,我在管理工具中启动了:ASP.NET 状态服务。然后,我的应用就可以正常运行了。

            【讨论】:

              【解决方案12】:

              我正在从视频资源中学习,并在被告知在视图中按 Ctrl-F5 以直接加载它时遇到此错误。通过这样做,我遇到了您发布的相同错误消息。

              为了解决这个问题,我构建了解决方案(构建 > 构建解决方案或 Ctrl+Shift+B),然后重试。

              【讨论】:

                【解决方案13】:

                就我而言,它有帮助: 如果您使用默认项目以外的文件夹(D 盘上的 naprmer,在 Windows 的情况下),则更改为默认文件夹,创建项目,运行它。然后,您可以在您想要的文件夹中创建项目。奇怪的。但这对我有帮助。

                【讨论】:

                  【解决方案14】:

                  当我试图合并两个解决方案时,这发生在我身上。 问题是没有在所有文件中正确配置命名空间。 故事的一部分用@Kevin Aenmey 的回答解决了,但很多其他的......不是!

                  所以对我来说唯一的方法是在整个解决方案中搜索旧的命名空间并将它们全部替换为新的命名空间。也许不是最好的选择,但如果运气不好,效果很好

                  【讨论】:

                    【解决方案15】:

                    重命名命名空间时会出现此错误。

                    -

                    1. 转到文件夹探索(不要使用解决方案探索)。查找 Global.asax 文件

                    .

                    1. 打开文件(在记事本/任何编辑器中)并更改替换旧命名空间名称新命名空间

                    1. 保存它现在应该可以工作了..

                    【讨论】:

                      【解决方案16】:

                      我遇到了同样的问题,那是因为我没有构建解决方案。菜鸟失误。只是:构建解决方案(Ctrl + shift + b)

                      【讨论】:

                        【解决方案17】:

                        在我的解决方案中添加了一个新项目后,我遇到了这个问题。解决方案已构建,没问题 - 但在运行时被轰炸。

                        事实证明,新项目默认设置为以 .NET 4.6.1 为目标,而 mhy 解决方案中的其他所有内容都以 .NET 4.5 为目标。

                        将新项目中的目标框架更改为 .NET 4.5 以匹配其他框架解决了该问题。

                        (感谢您没有对那位微软人员发出警告)

                        【讨论】:

                          【解决方案18】:

                          我使用FTP将我网站的DLLs上传到服务器上,但有时当网站的主要DLL没有正确上传到服务器上时会发生此错误。

                          所以我建议你重建你的项目并再次重新上传main DLLs到服务器上。

                          【讨论】:

                            【解决方案19】:

                            在我们的例子中 - 删除已发布的 Intranet 站点的所有内容,然后重新发布在调试中运行良好的项目解决了该问题。

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 2013-05-17
                              • 1970-01-01
                              • 2017-09-18
                              • 1970-01-01
                              • 2010-11-06
                              • 1970-01-01
                              • 2015-10-09
                              • 1970-01-01
                              相关资源
                              最近更新 更多