Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 Visual Studio无法从global.asax加载类型_Visual Studio 2012 - Fatal编程技术网

Visual studio 2012 Visual Studio无法从global.asax加载类型

Visual studio 2012 Visual Studio无法从global.asax加载类型,visual-studio-2012,Visual Studio 2012,我知道以前有人提出过这个问题,但可用的解决方案并没有解决我的问题 在我的解决方案中,我有一个global.asax文件,我没有编写它。cs文件中的命名空间和类与继承命名空间和类匹配 导致问题的原因很简单:我从解决方案中排除了一个目录,然后重新包含它。此后,当我尝试构建解决方案时,出现以下错误: Server Error in '/' Application. Parser Error Description: An error occurred during the parsing of a

我知道以前有人提出过这个问题,但可用的解决方案并没有解决我的问题

在我的解决方案中,我有一个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
“/”应用程序中出现服务器错误。 分析器错误 描述:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息,并适当修改源文件。 分析器错误消息:无法加载类型“EnableWebApp.Global”。 源错误: 第1行: 源文件:/global.asax行:1 我已经清理、重建、重新安装了这些文件,重新启动了框架,并重新启动了系统。什么也没有解决

Global.asax “”

Global.asax.cs 命名空间支持WebApp { 公共类全局:System.Web.HttpApplication
{

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

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

编辑:
我无法立即解释您为什么会得到这个结果。
您是否可以使用dll reflector程序扫描您网站的dll,查找全局类型及其命名空间,以验证是否正确构建到dll中?

你可以使用这个程序:

我在过去的两天里一直在与这个错误作斗争。这是我的场景,也是我如何解决它的。(我用VB编写代码..没有你们大多数人那么先进。)

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

2) 我创建了一个动态数据实体,该实体创建了model1.vb文件,其中包含公共类ceptenties

3) 我根据找到的指令设置Global.asax文件路由。 DefaultModel.RegisterContext(GetType(CepSenties),带有{.ScaffoldAllTables=True}的新ContextConfiguration()

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

4) 然后,我打开modle1.vb文件的属性,并将构建操作从内容(默认也是内容)更改为编译

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


希望这能帮其他人省去很多麻烦。

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

  • 删除Global.asax并通过Visual Studio的add->new Item功能添加一个新的,它将添加正确的名称空间/类型组合
  • 确保
    Inherits
    部分与项目的命名空间以及
    Global
    类型完全匹配。右键单击项目属性以检查命名空间。因此,如果应用程序的命名空间是
    MyProject.Web
    ,则应在此处设置
    Inherits=“MyProject.Web.Global”
如果您使用的是“本地IIS”,并且您的编译路径不是“bin/debug”

我碰巧发现IIS更改了调试中应用程序的物理路径。 这种情况发生在关闭/重新打开VS以及使用GIT更改分支时。 因此,请仔细检查您的IIS应用程序配置是否正确,以防修复它。 最后,我解决这个恼人问题的解决方法是在我的解决方案中添加一个简单的Console项目,该项目作为生成后事件编译并启动,以自动设置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;
    
    }

程序集名称为EnableWebApp。这些文件中没有任何更改导致此错误。您的全局文件中是否有任何代码,或者它只是文件本身?从技术上讲,您不需要它。如果您有代码,可以将其备份到某个位置,删除该文件,然后尝试运行您的项目。如果它在没有全局文件的情况下运行,请添加一个新的通过VisualStudio并再次粘贴到代码中。