【问题标题】:Global.asax parse error after minor change and revert to previous versionGlobal.asax 在细微更改后解析错误并恢复到以前的版本
【发布时间】:2013-05-13 07:57:40
【问题描述】:

上下文中的项目是:

  • ASP .NET Web 应用程序
  • .NET 框架:4
  • 平台目标:x86
  • IDE:Visual Studio 2010 Ultimate SP1
  • 以 ASP .NET 作为启动项目的解决方案中的多个项目。

直到昨天,它已经生产了几个月,没有出现任何故障。我清理了[Global.asax] 文件(删除了未使用的 using 语句、重构等),运行了解决方案并得到了以下错误:

说明:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息并适当修改您的源文件。
解析器错误消息:无法加载类型“CloudTech.ATS.WebClient.Global”。
源文件: /global.asax 行: 1
源错误: 第 1 行:<%@ Application CodeBehind="Global.asax.cs" Inherits="CloudTech.ATS.WebClient.Global" Language="C#" %>

这是 Global.asax 标记:

<%@ Application CodeBehind="Global.asax.cs" Inherits="CloudTech.ATS.WebClient.Global" Language="C#" %>

这是 Global.asax.cs 代码(已删除内部代码):

using System;
using System.Linq;

namespace CloudTech.ATS.WebClient
{
    public class Global: System.Web.HttpApplication
    {
    }
}

在与此错误搏斗一段时间后,我搜索,重新启动计算机,对解决方案执行完全清理,强制重建但无济于事。沮丧的是,我最终只将 Web 应用程序目标更改为“任何 CPU”并且它起作用了。不幸的是,“任何 CPU”不是解决手头问题的选项或解决方案。将其更改回“x86”会返回相同的错误。这发生了一次,从那时起,目标平台或调试/发布配置的组合不再起作用(同样的错误)。

此外:

  • 我的开发机器都是x64的。
  • 检查解决方案,让多个同事在他们的机器(x86 和 x64)上进行测试,结果相同。
  • 将整个项目从3天前恢复到干净状态,错误依旧!
  • 经过验证,绝对没有对 Web.config 文件或解决方案中的任何其他文件进行任何更改。

最后,对我的开发系统的唯一更改是 Windows 更新(定期安全更新),我在没有更新的系统上尝试了该解决方案,结果相同。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# asp.net .net global-asax parse-error


    【解决方案1】:
    • 使用记事本编辑您的 Global.asax 文件以确保它继承自您的网络应用的命名空间

    • 检查项目属性的程序集名称和默认命名空间

    • 从 bin 目录中删除旧程序集(旧项目程序集可能会导致问题!)

      祝你好运!

    【讨论】:

    • 虽然写得不好,但这实际上是解决我遇到的问题的正确方法。这有一个downvote,我赞成它。 global.asax 显然必须与 Web 项目位于相同的命名空间中。我已经修改了我的 web 项目命名空间,而 global.asax 使用了一个稍微不同的命名空间,从而产生了这个错误。确保它们同步基本上就是这个答案的意思。
    【解决方案2】:

    常规 ASP.NET Web 应用程序在解决方案文件夹中有 2 个文件:

    1. Global.asax
    2. Global.asax.cs

    确保 Global.asax.cs 中的类:

    namespace YourWebAppNamespace
    {
      public class MvcApplication : HttpApplication
      {
         ...
    

    在 Global.asax 中具有相同/正确的名称:

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

    当我在Global.asax.cs 文件中手动更改类名时遇到了这个问题,所以结果我和你有同样的错误,从我的角度来看,它应该提供更多信息。我知道这个问题已经得到解答,但也许我的案例对某人有帮助。

    【讨论】:

      【解决方案3】:

      我们在这里遇到了类似的问题。

      而我们所做的只是关闭 IDE。并再次打开它,然后构建,然后运行。

      非常令人沮丧和困惑。

      【讨论】:

      • 在我的情况下,由于某种原因重新启动 IDE 没有帮助。
      • 我们所做的是清理、重新构建、关闭 IDE、打开 IDE 并运行。
      • @kame,您使用的是哪个版本?每个 IDE 可能采用不同的方法,因为它们一直在按版本/IDE 进行更新。
      【解决方案4】:

      清理解决方案和删除程序集对后续构建没有影响。我的解决方案是将 Web 应用程序的项目设置中的输出路径更改为 Bin(而不是 bin/x86/Debug)。

      来源:- "Could not load type [Namespace].Global" causing me grief

      【讨论】:

      • 天哪,那是#@!@# 令人沮丧。谢谢你,谢谢你,谢谢你!我很惊讶这种行为在网络项目的 SP1 中没有得到修复。
      • 我更喜欢将它保存在调试文件夹中,但在某些情况下,将其更改为 bin 然后再返回 bin\debug 可以。只是在两者之间运行它。它的路径变化似乎使 IDE/IIS 组合摆脱了这种恐惧。
      猜你喜欢
      • 2019-03-28
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2019-01-20
      • 2017-09-30
      • 1970-01-01
      相关资源
      最近更新 更多