手动创建的 global.asax.cs 文件不起作用

Manually created global.asax.cs file doesn't work

我有网站项目并且我已经开始开发api(至少在尝试)。

问题在于创建 Global.asax 文件。因为这是 Web Site Project,当我创建 Global Application Class 时,它只创建 Global.asax 而没有 Global.asax.cs

经过一些研究,我发现我需要手动完成,所以我创建了 Global.asax.cs 文件,它自动将它设置在我已经创建的 Global.asax 下,我认为这很好。

问题是我认为 Global.asax.cs 中的代码不是 运行。我尝试将断点放在 Global.asax - Application_Start function 内,它停在那里(这意味着它正在工作),但是当我在 Global.asax.cs 处做同样的事情时,它不会停止。

我尝试在 Global.asax 中添加 <%@ Application Language="C#" Inhertis="Global.asax"%> 但我得到的是 Could not load type 'Global.asax'

我该怎么办?

编辑:

Global.asax.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Routing;

/// <summary>
/// Summary description for Global
/// </summary>
/// 
public class Global
{
    public Global()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = System.Web.Http.RouteParameter.Optional });
    }
}

我创建了一个网站项目来对此进行测试(不确定细节,因为我不经常使用网站项目)。我在 App_Code 文件夹(VS 推荐的位置)中有 Global.asax.cs class。通过以下设置,我在 Global.asax.cs:

内设置了断点

你的 Global.asax 应该是这样的,假设 Global.asax.cs 中的 class 名称是 Global(你可以自定义):

<%@ Application Language="C#" CodeBehind="App_Code\Global.asax.cs" Inherits="Global" %>

重要的是,您的 class Global 必须继承自 System.Web.HttpApplication

public class Global : System.Web.HttpApplication
{
    public Global()
    {
    }

    protected void Application_Start() 
    {
        Trace.TraceInformation("In application start");
    } 
}