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

时间:2018-01-24 23:03:29

标签: c# asp.net global-asax web-site-project

我有网站项目,我已经开始开发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执行相同操作时,它不会停止。

我尝试在<%@ Application Language="C#" Inhertis="Global.asax"%>内添加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 });
    }
}

1 个答案:

答案 0 :(得分:0)

我创建了一个网站项目来测试它(由于我不使用网站项目,因此不确定细节)。我在Global.asax.cs文件夹(VS推荐的位置)中有App_Code个班级。通过以下设置,我在Global.asax.cs中找到了断点:

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

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

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

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

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