全局.asax.cs文件在哪里?

49

我正在使用VS 2008。 我从“文件”->“新建”->“网站”->“Asp.net网站”创建了一个新的Asp.net网站项目。

现在我想将Global.asax和.cs文件添加到该项目中。 因此,我右键单击项目->添加新项->全局应用程序类。 然后我点击添加按钮。

Global.asax文件已添加,并包含以下内容

<%@ Application Language="C#" %>

 <script runat="server"%>

    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup

    }

    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown

    }

    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.

    }

</script>

这很好。但是 Global.asax.cs 文件在哪里?

谢谢


2
请问在Visual Studio 2010中,Global.asax.cs文件在哪里? - naveen
2个回答

58

它不会自动生成;您需要自己添加。

在添加 Global.asax 之后,通过以下步骤进行:

  • 右键单击您的网站 -> 添加新项 -> 全局应用类 -> 添加

然后,您需要添加一个类:

  • 右键单击 App_Code -> 添加新项 -> -> 将其命名为 Global.cs -> 添加

继承新生成的 System.Web.HttpApplication,并将在 Global.asax 中创建的所有方法复制到 Global.cs 中,并还要为 Global.asax 文件添加一个继承属性。

您的 Global.asax 应该像这样:

<%@ Application Language="C#" Inherits="Global" %>

你的App_Code文件夹中的Global.cs文件应该长成这样:

public class Global : System.Web.HttpApplication
{
    public Global()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup

    }
    /// Many other events like begin request...e.t.c, e.t.c
}

我收到了错误信息:“'inherit'属性不受'application'指令的支持。” - Rahul Jain
@RahulJain,应该是Inherits而不是inherit。你检查过拼写了吗?否则你使用的是哪个框架版本? - Waqas Raja
描述中有一个错别字(Glabal.cs)- 我无法编辑此帖子,因为编辑少于6个字符。 - steadweb

32

这是因为您创建的是一个网站而不是一个网页应用程序。在网站中,只能看到cs/vb文件,但在网站中,您无法拥有单独的cs/vb文件。

编辑:在网站中,您可以添加类似于cs文件的行为...

<%@ Application CodeFile="Global.asax.cs" Inherits="ApplicationName.MyApplication" Language="C#" %>

~/Global.asax.cs:

namespace ApplicationName
{
    public partial class MyApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
        }
    }
}

那么获取global.asax以及global.asax.cs文件的方法是什么? - apurva
如果您使用Web应用程序模型,则可以获得单独的cs文件。 - Muhammad Akhtar
@apurva; 更新了答案,你也可以在网站上实现 :) - Muhammad Akhtar
@apurva 你需要做的是:在“解决方案资源管理器”中右键单击网站,选择“添加新项”,然后从模板中选择“全局应用程序类”。一个名为Global.asax的文件将被创建在站点的根目录下。如果您还没有创建过“全局应用程序类”模板,则该项模板将仅出现在列表中。 - zanlok
1
我遇到了“无法加载类型XXXX”的错误。我将其作为网站项目。 - Chih-Ho Andy Chou
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接