【问题标题】:Manually created global.asax.cs file doesn't work手动创建的 global.asax.cs 文件不起作用
【发布时间】:2018-01-24 23:03:28
【问题描述】:

我有网站项目,我已经开始开发 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 });
    }
}

【问题讨论】:

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


    【解决方案1】:

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

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

    <%@ 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");
        } 
    }
    

    【讨论】:

    • 它是网站项目,它没有命名空间还是我错了?
    • Tbh,我不确定。您可能不需要命名空间 - 但重点是,Inherits 绝对不应该包含 .asaxInherits="Global" 有效吗?
    • &lt;%@ Application Language="C#" CodeBehind="Global.asax.cs" Inherits="Global"%&gt; 我有这个,上面写着Could not load type 'Global'
    • Global.asax.cs里面,继承自System.Web.HttpApplication的类名是什么?
    • 查看编辑,我创建了一个网站项目并能够点击 global.asax.cs 断点。显然,如果您的 global.asax.cs 不在 App_Code 文件夹中,请将其从 Codebehind 路径中排除。这是手动创建的Global.asax.cs
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多