2

我知道这个问题之前已经提出过,但可用的解决方案并没有解决我的问题。

我的解决方案中有一个我没有编写的 global.asax 文件。cs 文件中的命名空间和类与继承命名空间和类匹配。

导致问题的原因很简单:我从解决方案中排除了一个目录,然后重新包含它。从那时起,当我尝试构建我的解决方案时会出现以下错误:

Server Error in '/' Application.

Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

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

Source File: /global.asax    Line: 1

我已经清理、重建、重新安装了这些文件,重新启动了框架,并重新启动了我的系统。还没有解决它。

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

Global.asax.cs 命名空间 EnableWebApp { 公共类 Global : System.Web.HttpApplication {

4

5 回答 5

1

如果有人遇到此问题,有两个简单的解决方法:

  • 删除 Global.asax 并通过 Visual Studio 的 Add -> New Item 功能添加一个新的,它将添加正确的命名空间/类型组合
  • 确保该Inherits部分与项目的命名空间以及Global类型完全匹配。右键单击您的项目属性以检查您的命名空间。所以如果你的应用程序的命名空间是MyProject.Web,你应该在Inherits="MyProject.Web.Global"这里。
于 2017-06-13T17:38:15.677 回答
0

右键单击您的 Web 项目,转到属性,并检查程序集名称和根命名空间是否为“EnableWebApp”

于 2013-09-26T13:27:09.177 回答
0

global.asax 实际上附加了 2 个文件,一个标记和一个代码隐藏。
如果您右键单击该文件,您可以选择查看标记,我猜该行某处存在名称空间或名称不匹配。
如果不能,您可以发布您的 global.asax.cs 和标记(应该只有 1 个文件)吗?

编辑:
我没有立即解释为什么你会得到这个结果。
您可以使用 dll 反射器程序来扫描您网站的 dll 中的全局类型及其名称空间以验证它是否正确构建到 dll 中?
你可以使用这个程序:ILSpy 的下载链接

于 2013-09-26T13:27:16.950 回答
0

在过去的两天里,我一直在与这个错误作斗争。这是我的场景以及我如何解决它。(而且我用 VB 编写代码……不像你们大多数人那样先进。)

1) 我将 web 代码文件夹添加到我的项目中。

2) 我创建了一个动态数据实体,它创建了包含公共类 CEPTEntities 的 model1.vb 文件

3) 我根据找到的说明设置 Global.asax 文件路由。DefaultModel.RegisterContext(GetType(CEPSEntities), New ContextConfiguration() With _{.ScaffoldAllTables = True})

3a) CEPSEntitities 是我的数据实体模型的名称。然后我验证了我的 web.config 文件中的连接字符串是正确的

4)然后我打开了 modle1.vb 文件的属性并将构建操作从 Content (它也默认)更改为编译。

5)然后进行了清理和重建,我的应用程序终于在 IE 中打开了。

希望这可以为其他人省去很多麻烦。

于 2013-10-11T14:08:08.007 回答
0

如果您使用的是“本地 IIS”并且您的编译路径不是“bin/debug”...

我碰巧 IIS 更改了正在调试的应用程序的物理路径。这发生在关闭/重新打开 VS 并使用 GIT 更改分支。因此,请仔细检查您的 IIS 应用程序配置是否正确,以防万一进行修复。最后,我解决这个烦人问题的解决方法是在我的解决方案中添加一个简单的 consol 项目,该项目被编译并作为构建后事件启动,以在 IIS 中自动设置正确的路径:

    static int Main(string[] args)
    {
        int result = 0;
        try
        {
            ServerManager serverManager = new ServerManager();
            var myApp = serverManager.Sites["Default Web Site"].Applications["/myApp"].VirtualDirectories[0];
            myApp.PhysicalPath = args[0];
            serverManager.CommitChanges();
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
            result = -1;
        }

        return result;
    
    }
于 2021-03-28T16:48:48.350 回答