【问题标题】:IIs Error: Application Codebehind=“Global.asax.cs” Inherits=“nadeem.MvcApplication”IIs 错误:应用程序代码隐藏 =“Global.asax.cs” 继承 =“nadeem.MvcApplication”
【发布时间】:2014-07-21 16:36:42
【问题描述】:

我正在尝试部署我的 Web 项目,但一直收到此错误:

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

我看了这个帖子:Parser Error: Server Error in '/' Application

但它在我的项目中是正确的。

我怀疑这与我的 iis7 配置有关。

有什么想法吗?

全球.asax:

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

Global.asax.cs:

namespace TamalTest
{
using System;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

public class MvcApplication : HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    }
}

}

【问题讨论】:

  • 事件查看器中有什么更明确的吗?
  • 你能显示你的 Global.asax.cs 代码吗
  • 是文件的准确代码吗??

标签: c# asp.net asp.net-mvc-3


【解决方案1】:

已解决,只需重命名Global.asax或将其删除即可解决问题:/

我在网上发现的其他已知相关错误:

  1. Global.asax.cs:必须继承自 HttpApplication -&gt; public class MvcApplication : HttpApplication
  2. 项目输出必须是bin文件夹而不是Bin/Debug
  3. Iss 应用程序池的 .net 版本不正确。

【讨论】:

  • 我在 Global.asax.cs 和 Global.asax 标记中有不同的类名。 This answer帮帮我。
  • 什么?为什么我不应该使用 bin/debug?
  • 谢谢!这正是我一直在寻找的。我刚刚将我的项目输出文件夹更改为 bin\,它又开始工作了!
  • 遇到同样的问题,更改输出文件夹有效
【解决方案2】:

您可以通过编辑 Globas.asax 文件(不是 Global.asax.cs)来更改它。在 Windows 资源管理器的 app 文件夹中找到它,然后编辑

&lt;%@ Application Codebehind="Global.asax.cs" Inherits="YourAppName.Global" Language="C#" %&gt;

&lt;%@ Application Codebehind="Global.asax.cs" Inherits="YourAppName.MvcApplication" Language="C#" %&gt;

【讨论】:

    【解决方案3】:

    可能由于清洁解决方案而发生。bin 中的 dll 将被删除。 1.清洁解决方案 2.重建解决方案 3.如果构建过程失败,则并非所有必要的 dll 都将存储在 bin 中。 这是发生错误的另一种情况

    【讨论】:

    • 这更接近我认为答案正确的原因。我刚刚发布,看起来我之前使用的调试文件已经为发布编译和发布进行了清理。一旦我重新编译为调试模式,错误就得到了修复,因为这是我的本地网站运行的地方。
    【解决方案4】:

    如果您更改了项目的命名空间,可能会出现问题。

    从项目属性中更改命名空间,并将所有旧命名空间替换为新命名空间。 重命名为正确的命名空间可能会解决此问题。

    Source

    【讨论】:

      【解决方案5】:

      这很奇怪。每次我遇到这个问题,都有不同的解决方案。这次所有之前的修复都失败了,然后我将项目输出路径从 Bin 更改为 ..\Build\Bin。它失败了。将输出路径还原为先前的值,即 Bin 修复了该问题。

      【讨论】:

        【解决方案6】:

        以上没有对我有用。一切都是正确的。

        关闭 Visual Studio 并重新打开。这解决了我的问题。

        问题可能是由不同版本的 Visual Studio 引起的。我有 Visual Studio 2017 和 2019。我同时在这两个版本上打开了项目。这可能创建了不同的 vs 文件集。

        关闭 Visual Studio 的任何实例并再次打开。

        【讨论】:

          【解决方案7】:

          从另一个系统复制项目时,我遇到了同样的问题。就我而言,我解决了这个问题:

          从 Bin 文件夹中删除所有内容。 再次清理并重建应用程序

          希望这会有所帮助。

          【讨论】:

            【解决方案8】:

            我有同样的错误。通过以下步骤解决

            转到 IIS -> 找到您的站点 -> 右键单击​​该站点 -> 管理网站 -> 高级设置 -> 检查您的物理路径是否正确。

            如果错误,请找到正确的路径。这将解决问题。

            【讨论】:

              【解决方案9】:

              我也遇到了这个错误,我从调试文件夹中删除了 dll,当我启动一个新的调试实例时,我得到了这个错误。对我来说,问题是由于构建设置,在构建类型中选择了发布,我只是将其更改为调试,然后应用程序工作正常

              【讨论】:

                【解决方案10】:

                在我的情况下,命名空间重命名后发生了问题。我没有使用像 Re-sharper 这样的外部工具,而是手动重命名。

                在该过程中,Views/Web.config 文件保持不变。用此文件中的新命名空间名称替换旧命名空间名称后,错误消失了。

                【讨论】:

                  【解决方案11】:

                  在我的情况下,我在 IIS 上的站点指向的项目与我在 Visual Studio 上运行的项目不同。

                  【讨论】:

                    【解决方案12】:

                    我在 IIS Express 上遇到了同样的错误。就我而言,我有两个项目作为启动项目。我将解决方案的属性更改为单个启动项目并运行它。然后将其更改为以前的设置并再次运行解决方案,并且没有再次出现错误!

                    【讨论】:

                      【解决方案13】:

                      确保 Inherits 指向该类的正确命名空间,因为当您在解决方案下创建 MVC 项目时,Inherits em> 值将错过项目名称。因此,您需要手动填写空白(项目名称)。

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

                      【讨论】:

                        【解决方案14】:

                        就我而言,我复制了项目并将其粘贴为另一个项目。 Global.asax 文件包含错误的文件名,所以我只是更改

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

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

                        【讨论】:

                          【解决方案15】:

                          我遇到了类似的错误,尝试了上述所有建议,但没有解决。对我有用的是:

                          右键单击您的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 的类型匹配。

                          查看以下链接了解更多信息:

                          Parser Error: Server Error in '/' Application

                          【讨论】:

                            【解决方案16】:

                            删除 Global.asax 并重新启动 Visual Studio 为我解决了这个问题。

                            【讨论】:

                            • 欢迎来到 SO!很高兴提及它的具体作用,特别是如果它有任何潜在的副作用。
                            【解决方案17】:

                            我在 WebAPI(相关 MVC)中遇到了类似的问题。

                            我修复了:

                            将“.Global”添加到 .asax 文件(不是 asax.cs)中的继承

                            Inherits="mynamespace.WebAPI.Global" 
                            

                            并更改公共类 (asax.cs)

                            public class Global : System.Web.HttpApplication
                            

                            【讨论】:

                              【解决方案18】:

                              在我的情况下,问题是通过将解决方案平台从 AnyCPU 更改为 x86 来解决的。

                              【讨论】:

                                【解决方案19】:

                                在更改我们的解决方案/项目的名称后,我发现这个问题发生在我和一位同事身上。

                                我的同事导致的问题:我将更改拉入我的分支并出现错误。在我的 bin 文件夹中,我发现旧的 .dll 文件与新命名的 .dll 文件放在一起。删除旧的,问题就消失了。

                                【讨论】:

                                  【解决方案20】:

                                  在我的情况下,它也是由旧的 dll 引起的。清理所有文件然后重建。

                                  【讨论】:

                                  • 欢迎来到 SO。由于已经提供了此答案,请更新相应的答案,而不是添加不会带来任何信息的新答案
                                  • VS2019 .. 这对我不起作用,它只是抱怨当我重新启动 VS 时找不到文件。您是否缺少解决方案中的步骤?
                                  【解决方案21】:

                                  唯一对我有用的解决方案

                                  1. 运行,键入命令 %Temp% -> 删除“临时 ASP.NET 文件”。

                                  我尝试过的其他解决方案,但没有奏效。

                                  1. 清理/重建

                                  2. 清洁箱、obj 文件夹

                                  3. 更改命名空间

                                  【讨论】:

                                    【解决方案22】:

                                    Right Click > Open Folder in File Explorer

                                    如果您在目录中,请找到 Global.asax 而不是 Global.asax.cs

                                    Right click on Global.asax file then find Open with

                                    Change Inherits="ProjectNameThatHasError.MvcApplication" to Inherits="YourNamespaceNow.MvcApplication"

                                    您可以在记事本、Visual Studio 任何版本中打开它,无论如何您都可以编辑文本。

                                    【讨论】:

                                      【解决方案23】:

                                      检查您导入的引用的目标框架版本。就我而言,我添加了一个与 Target 框架不同的引用。

                                      【讨论】:

                                        【解决方案24】:

                                        有同样的问题,卸载并重新加载项目。确保 Global.asax 包含在项目中

                                        【讨论】:

                                          【解决方案25】:

                                          对于上述错误,我删除了 global.asax 文件,然后重新启动了 Visual Studio。

                                          【讨论】:

                                          • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
                                          猜你喜欢
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多