您的位置:首页 > 编程语言 > ASP

ASP Global.asax文件,全局应用程序类

2018-01-01 14:17 316 查看
Global.asax 文件名称不能改,并且要放在网站的根目录下。

1、全局文件是对Web应用生命周期的一个事件响应的地方

2、将Web应用启动时初始化的一些代码写到Application_Start中。应用关闭的时候Application_End调用。

3、当一个Session启动的时候Session_Start被调用,Session结束(用户主动退出或者超时结束)Session_End被调用。

4、当一个用户请求来的时候Application_BeginRequest方法被调用

5、当应用中出现未捕获异常,Application_Error被调用,用HttpContext.Current.Server.GetLastError()获得异常信息,然后用Log4Net记录到日志中。

Global.asax.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace XXX.WebApp
{
public class Global : System.Web.HttpApplication
{
/// <summary>
/// Web应用程序第一次启动时调用该方法,并且该方法只被调用一次。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Start(object sender, EventArgs e)
{

}
/// <summary>
/// 开始会话。(用户通过浏览器第一次访问我们网站中的某个页面,这时建立会话,但是当该用户通过浏览器再次访问其它的页面时,该方法不会被执行。SessionId)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_Start(object sender, EventArgs e)
{ //Application:服务端的状态保持机制。放在该对象中的数据是共享的。 与Cache相同,只是Cache本身就有加锁解锁的机制
Application.Lock(); //Application需要手动加锁解锁。
int count = Convert.ToInt32(Application["count"]);
count++;
Application["count"] = count;
Application.UnLock();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{

}

protected void Application_AuthenticateRequest(object sender, EventArgs e)
{

}

/// <summary>
/// 全局的异常处理点。未捕获的异常(未被try catch的异常)出现时,会调用该函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Error(object sender, EventArgs e)
{
//Exception ex = HttpContext.Current.Server.GetLastError();
///ex.Message
///写到日志中。
//Log4Net
}
/// <summary>
/// 会话结束(与用户的连接结束)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_End(object sender, EventArgs e)
{
Application.Lock();
int count = Convert.ToInt32(Application["count"]);
count--;
Application["count"] = count;
Application.UnLock();
}

protected void Application_End(object sender, EventArgs e)
{

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp asp.net