永发信息网

ASP.NET高手来看看

答案:3  悬赏:0  手机版
解决时间 2021-06-05 02:04

怎么我的程序里的Session.Abandon()方法不可以关闭Session呢?难道Session一定要超时才能完全关闭的吗?下面是我的代码...请各位指点下...

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Session_Welcome : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.lblTotal.Text = Application["total"].ToString();
this.lblOnLine.Text = Application["online"].ToString();
//string[] sz = (string[])Session["users"];// 定义一个数组sz读取Session中的users数组
//string name = sz[0];
//string pwd = sz[1];

if (Session["users"] != null) //判断是否为空
this.lblInfo.Text = "欢迎来到本网站,尊敬的" + ((string[])Session["users"])[0];
else
{
Response.Write("<script language='javascript'>alert('您还没登录,请登录!');</script>");
Response.Write("<script language='javascript'>window.location.href='Session_Login.aspx';</script>"); //没有登录,转向登录页面
}

//if (((string[])Session["users"])[0] != "admin" || ((string[])Session["users"])[1] != "admin")
//{
// Response.Write("<script language='javascript'>alert('用户名不存在或密码错误!');</script>");
// Response.Write("<script language='javascript'>window.location.href='Session_Login.aspx';</script>");
//}
}
}
protected void btnInfob_Click(object sender, EventArgs e)
{
this.lblType0.Text = Request.Browser.Browser;
this.lblCop0.Text = Request.Browser.Version;
this.lblIp0.Text = Request.UserHostAddress;
this.lblName0.Text = Request.UserHostName;
this.lblSys0.Text = Request.Browser.Platform;
if (Request.Browser.JavaScript == true)
this.lblJava0.Text = "支持";
else
this.lblJava0.Text = "不支持";
}
protected void btnInfos_Click(object sender, EventArgs e)
{
string pach = "";
this.lblSname0.Text = Server.MachineName;
this.lblPach0.Text = Server.MapPath(pach);
this.ListBox2.Items.Clear();
foreach (string item in Request.ServerVariables)
{
this.ListBox2.Items.Add(item);
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session.Clear();//清空session里的数据
Session.Abandon();//关闭session
if (Session["users"] == null)
Response.Write("<script language='javascript'>alert('登出成功!');</script>");
Response.Write("<script language='javascript'>window.location.href='Session_Login.aspx';</script>");
}
}

以下是Global.asax里的代码

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

<script runat="server">

void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
Application.Lock();
Application["total"]=0;
Application["online"] = 0;
Application.UnLock();
}

void Application_End(object sender, EventArgs e)
{
//在应用程序关闭时运行的代码

}

void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码

}

void Session_Start(object sender, EventArgs e)
{
//在新会话启动时运行的代码

Session.Timeout = 1;
Application.Lock();
Application["total"] = Convert.ToInt32(Application["total"]) + 1;
Application["online"] = Convert.ToInt32(Application["online"]) + 1;
Application.UnLock();
}

void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["online"] = Convert.ToInt32(Application["online"]) - 1;
Application.UnLock();
}

</script>

我是想实现在线人数的统计请各位看看为什么当我按了LinkButton1之后其中的在线人数没变化而总浏览数却加了1!!!!

这到底是为什么啊!!!!!!

最佳答案
//Session.RemoveAll();
全部回答

直接Session.Abandon().

不用clear吧

哦,应该可以啊,

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在成都5530XM报价
5173最好的一种交易是寄售?如果买YXB那可不可
这个说的是什么意思??
音响上的HI-IN LOW-IN分别是什么意思
广西人到哪里学软件开发或动漫设计?
为什么巨星玩不了了
祁东县衡阳芭贝乐地址在什么地方,想今天过去
为什么我的e63下载不了来电通
地下城转区名额江一转五什么时候有?
电影《刺陵》什么时候上映?
中信银行的文件证书怎样在IE8导出私钥
dnf开深渊最后一个是什么任务
龙沙区齐齐哈尔思家水饺在什么地方啊,我要过
石家庄这么大的雪可是新闻却说铁路没受影响,
吹风机把头发吹干有没有好处
推荐资讯
我的手机6120掉进水里怎么办呢?还有我的原装
情侣QQ里面必须带0126!都有那些?
没有经验的java程序员月薪大概又是多少啊
祁阳县永州龙山童车行在什么地方啊,我要过去
冬天买的强生润肤霜太油,不易吸收,该怎么办
速达软件免费下载
为什么迈克尔.杰克逊跳舞那么棒
黄钻包月???
有电脑了,为什么还这么烦
厦门到景德镇的车次及票价
请推荐几个好的中文,文章网!
绩效工资怎么会是这个样子
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?