在网站根目录中添加文件 Global.asax
代码如下:
<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Application["numOfOnLine"] = 0;
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
Application["numOfOnLine"] = 0;
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
string ip = string.Empty;
try
{
if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
{
ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString().Split(',')[0].Trim();
}
else
{
ip = HttpContext.Current.Request.UserHostAddress;
}
//此处记录访问日志,写数据库。
}
catch (Exception ex)
{
throw ex;
}
Application["numOfOnLine"] = (long)Convert.ChangeType(Application["numOfOnLine"], typeof(long)) + 1;
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
Application["numOfOnLine"] = (long)Convert.ChangeType(Application["numOfOnLine"], typeof(long)) - 1;
if ((long)Convert.ChangeType(Application["numOfOnLine"], typeof(long)) < 0) Application["numOfOnLine"] = 0;
}
</script>