较小的更改后,Global.asax解析错误并恢复到以前的版本

时间:2013-05-18 05:34:33

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

上下文中的项目是:

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

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

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

Error snapshot

以下是 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更新(定期安全更新),我在系统上尝试了没有更新的解决方案,结果相同。

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:19)

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

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

答案 1 :(得分:9)

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

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

非常令人沮丧和困惑。

答案 2 :(得分:4)

  • 使用记事本,编辑Global.asax文件以确保它继承自您的网络应用程序的命名空间
  • 检查项目属性的程序集名称和默认名称空间
  • 从bin目录中删除旧的程序集(旧项目程序集可能会导致问题!)

    祝你好运!

答案 3 :(得分:4)

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

  1. Global.asax
  2. 的Global.asax.cs
  3. 确保Global.asax.cs中的类:

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

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

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

    当我在Global.asax.cs文件中手动更改类名时,我遇到了这个问题,因此结果我遇到了与您相同的错误,从我的角度来看,它应该提供更多信息。我知道这个问题已经得到了回答,但也许我的情况对某人有帮助。