.NET 多个用户同时使用一个功能,之间数据相互影响 Session不会乱。你们认为Session,理由是什么呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我们上网一顿猛查 发现 session 串号 现象 和我们现在发现的 问题 几乎一模一样,因此得出的判断。如果 不是这个问题,请问您估计是什么 原因引起的? 我们曾经怀疑是 static 过多导致的问题,,,后来 把static 去掉之后,发现扔未解决。好愁人啊 Session不会乱。打印出你们的日志看看 我不瞎猜。你应该动手进行测试,然后再提出问题。就算是你们觉得是“Session串了”,也应该动手测试出来,而不是瞎猜。 “A选择的商品Aa 后 ,B选择商品Bb,,,返回的菜单中 显示的是商品Aa其他人也是这样 商品选择后都 相互改变了。”这种问题难道不能调试跟踪么?不能打印日志么?甚至不能写一个测试程序么?难道去搞清楚是不是Session乱的问题也需要“上网一顿猛查”么?你们公司找一个有实践项目经验的 asp.net 程序员吧! 好吧,,,被 喷了,,,我刚毕业,,,没有ASP.NET 的开发经验,,,而且 这个 项目 还真不是我做的,,,出现这个问题,,,实在是让我很棘手啊可以 教教 我么? 这个 实在web服务器上面 发现的问题,我们就没有提交到 数据库,所以里面是查不到数据的需要 我把程序 运行一遍(含错误),然后提交 查看么? session不会混乱的,因为每个用户有自己的sessionID,只有当多个用户的sessionId相同时,才会混乱,但是在不同的电脑上,不同的浏览器中,sessionID不可能会相同的。你应该将这块的代码贴出来,可能是代码处理有问题 User currentUser = (User)(Session["UserInfo"]); czybh = currentUser.UserID.ToString();//操作员编号 czymc = currentUser.TrueName;//操作员名称 czybmid = currentUser.DepartmentID;//操作员部门id czybmmc = currentUser.BM;//操作员部门名称 czypqid = currentUser.PQID;//操作员片区id czypqmc = currentUser.PQ;//操作员片区名称 czybzid = currentUser.BZID;//班组id czyckmc = currentUser.CKMC;//仓库名称 czyckid = currentUser.CKBH;//仓库编号 ygbh = czybh; bmid = czybmid; pqid = czypqid; bzid = czybzid; //隐藏按钮接收session值 protected void Button100_Click(object sender, EventArgs e) { if (hidden1.Value == "0") { this.ASPxButtonEdit2.Text = Session["khmc"].ToString(); this.TextBox2.Text = Session["dzdh"].ToString(); this.TextBox3.Text = Session["khsh"].ToString(); this.TextBox4.Text = Session["yhzh"].ToString(); khbh = Session["khid"].ToString(); khbj = Session["khbj"].ToString(); if (khbj == "") khbj = "-1"; this.ASPxButtonEdit3.Text = Session["khmc"].ToString(); this.TextBox6.Text = Session["dzdh"].ToString(); this.TextBox7.Text = Session["khsh"].ToString(); this.TextBox8.Text = Session["yhzh"].ToString(); } if (hidden1.Value == "1") { this.ASPxButtonEdit3.Text = Session["khmc"].ToString(); this.TextBox6.Text = Session["dzdh"].ToString(); this.TextBox7.Text = Session["khsh"].ToString(); this.TextBox8.Text = Session["yhzh"].ToString(); } if (hidden1.Value == "2")//员工选择 { this.ASPxButtonEdit4.Text = Session["bmmc"].ToString(); this.TextBox22.Text = Session["pqmc"].ToString(); this.TextBox30.Text = Session["ygmc"].ToString(); ygbh = Session["ygbh"].ToString(); bmid = Session["bmid"].ToString(); pqid = Session["pqid"].ToString(); bzid = Session["bzid"].ToString(); } }这时我测的部分 session代码,,不知道贴的对不对 你看一下吧 User currentUser = (User)(Session["UserInfo"]); czybh = currentUser.UserID.ToString();//操作员编号 czymc = currentUser.TrueName;//操作员名称 czybmid = currentUser.DepartmentID;//操作员部门id czybmmc = currentUser.BM;//操作员部门名称 czypqid = currentUser.PQID;//操作员片区id czypqmc = currentUser.PQ;//操作员片区名称 czybzid = currentUser.BZID;//班组id czyckmc = currentUser.CKMC;//仓库名称 czyckid = currentUser.CKBH;//仓库编号 ygbh = czybh; bmid = czybmid; pqid = czypqid; bzid = czybzid; //隐藏按钮接收session值 protected void Button100_Click(object sender, EventArgs e) { if (hidden1.Value == "0") { this.ASPxButtonEdit2.Text = Session["khmc"].ToString(); this.TextBox2.Text = Session["dzdh"].ToString(); this.TextBox3.Text = Session["khsh"].ToString(); this.TextBox4.Text = Session["yhzh"].ToString(); khbh = Session["khid"].ToString(); khbj = Session["khbj"].ToString(); if (khbj == "") khbj = "-1"; this.ASPxButtonEdit3.Text = Session["khmc"].ToString(); this.TextBox6.Text = Session["dzdh"].ToString(); this.TextBox7.Text = Session["khsh"].ToString(); this.TextBox8.Text = Session["yhzh"].ToString(); } if (hidden1.Value == "1") { this.ASPxButtonEdit3.Text = Session["khmc"].ToString(); this.TextBox6.Text = Session["dzdh"].ToString(); this.TextBox7.Text = Session["khsh"].ToString(); this.TextBox8.Text = Session["yhzh"].ToString(); } if (hidden1.Value == "2")//员工选择 { this.ASPxButtonEdit4.Text = Session["bmmc"].ToString(); this.TextBox22.Text = Session["pqmc"].ToString(); this.TextBox30.Text = Session["ygmc"].ToString(); ygbh = Session["ygbh"].ToString(); bmid = Session["bmid"].ToString(); pqid = Session["pqid"].ToString(); bzid = Session["bzid"].ToString(); } }这时我测的部分 session代码,,不知道贴的对不对 你看一下吧这部分的代码看不出什么问题,你将所有值都存在了session中,Session["khmc"]等等这些你及时的更新了吗,你有必要在本地调试一下这些session的值,有可能本身这些session传过来就不是你想要的东东 这个跟static过多还是较少无关BS模式下,你就不应该用static除非你确定一个变量,在所有用户用的时候都是用同一个值,比如数据库连接字符串否则只要定义成static,就必然出现互相窜的情况 既然已经使用了session,就都用session,不要再用static变量往session里传值 也就是说 有session 时,,,static 是不能用的? 你这什么理解能力?人家说的是 有Session 作为会话状态,不需要用Static作为状态保持,再着 Static 变量 是全局的共享的,几个人同时使用,肯定会使Static变量混乱。 有没有session,static也是不能乱用的因为你一个变量是static的,则所有用户看到的数据就都是一样的.如果服务器IP,数据库连接串这些东西要展示给用户,你用static没有任何问题,反正本来也只有1个,大家看到的是同样的是正常的而如果是当前用户名,你放static变量里,那能对吗 你这什么理解能力?人家说的是 有Session 作为会话状态,不需要用Static作为状态保持,再着 Static 变量 是全局的共享的,几个人同时使用,肯定会使Static变量混乱。好吧 我又小白了,,,受教了 我们 现在 把static 去掉了 ,有session 传值,不使用 static了,,,测试一下,好像好了。观察几天 就结贴,,,先谢谢啊!!! DropDownList获取ID的问题,在线等撒~~ js 输出 asp.net发贴大字体全都挤到一块去了! 有关日历控件位置的问题!!! 变量使用范围问题 使用了母版页的网页都是“无标题页”,该怎样设置这些网页的title? 关于程序员薪水问题,大家一起来讨论 asp.net如果将string 转换int 类型 写webpart的高手们请进来看看 asp.net c# asp.net在win2008r2服务器中无法访问域服务器进行用户验证 在MVC4中,为什么Response.End()之后的代码会被执行?
如果 不是这个问题,请问您估计是什么 原因引起的?
好愁人啊
我不瞎猜。你应该动手进行测试,然后再提出问题。就算是你们觉得是“Session串了”,也应该动手测试出来,而不是瞎猜。
这个 实在web服务器上面 发现的问题,我们就没有提交到 数据库,所以里面是查不到数据的
需要 我把程序 运行一遍(含错误),然后提交 查看么?
czybh = currentUser.UserID.ToString();//操作员编号
czymc = currentUser.TrueName;//操作员名称
czybmid = currentUser.DepartmentID;//操作员部门id
czybmmc = currentUser.BM;//操作员部门名称
czypqid = currentUser.PQID;//操作员片区id
czypqmc = currentUser.PQ;//操作员片区名称
czybzid = currentUser.BZID;//班组id
czyckmc = currentUser.CKMC;//仓库名称
czyckid = currentUser.CKBH;//仓库编号 ygbh = czybh;
bmid = czybmid;
pqid = czypqid;
bzid = czybzid; //隐藏按钮接收session值
protected void Button100_Click(object sender, EventArgs e)
{
if (hidden1.Value == "0")
{
this.ASPxButtonEdit2.Text = Session["khmc"].ToString();
this.TextBox2.Text = Session["dzdh"].ToString();
this.TextBox3.Text = Session["khsh"].ToString();
this.TextBox4.Text = Session["yhzh"].ToString();
khbh = Session["khid"].ToString();
khbj = Session["khbj"].ToString();
if (khbj == "")
khbj = "-1"; this.ASPxButtonEdit3.Text = Session["khmc"].ToString();
this.TextBox6.Text = Session["dzdh"].ToString();
this.TextBox7.Text = Session["khsh"].ToString();
this.TextBox8.Text = Session["yhzh"].ToString();
}
if (hidden1.Value == "1")
{
this.ASPxButtonEdit3.Text = Session["khmc"].ToString();
this.TextBox6.Text = Session["dzdh"].ToString();
this.TextBox7.Text = Session["khsh"].ToString();
this.TextBox8.Text = Session["yhzh"].ToString();
}
if (hidden1.Value == "2")//员工选择
{
this.ASPxButtonEdit4.Text = Session["bmmc"].ToString();
this.TextBox22.Text = Session["pqmc"].ToString();
this.TextBox30.Text = Session["ygmc"].ToString();
ygbh = Session["ygbh"].ToString();
bmid = Session["bmid"].ToString();
pqid = Session["pqid"].ToString();
bzid = Session["bzid"].ToString();
}
}
这时我测的部分 session代码,,不知道贴的对不对 你看一下吧
czybh = currentUser.UserID.ToString();//操作员编号
czymc = currentUser.TrueName;//操作员名称
czybmid = currentUser.DepartmentID;//操作员部门id
czybmmc = currentUser.BM;//操作员部门名称
czypqid = currentUser.PQID;//操作员片区id
czypqmc = currentUser.PQ;//操作员片区名称
czybzid = currentUser.BZID;//班组id
czyckmc = currentUser.CKMC;//仓库名称
czyckid = currentUser.CKBH;//仓库编号 ygbh = czybh;
bmid = czybmid;
pqid = czypqid;
bzid = czybzid; //隐藏按钮接收session值
protected void Button100_Click(object sender, EventArgs e)
{
if (hidden1.Value == "0")
{
this.ASPxButtonEdit2.Text = Session["khmc"].ToString();
this.TextBox2.Text = Session["dzdh"].ToString();
this.TextBox3.Text = Session["khsh"].ToString();
this.TextBox4.Text = Session["yhzh"].ToString();
khbh = Session["khid"].ToString();
khbj = Session["khbj"].ToString();
if (khbj == "")
khbj = "-1"; this.ASPxButtonEdit3.Text = Session["khmc"].ToString();
this.TextBox6.Text = Session["dzdh"].ToString();
this.TextBox7.Text = Session["khsh"].ToString();
this.TextBox8.Text = Session["yhzh"].ToString();
}
if (hidden1.Value == "1")
{
this.ASPxButtonEdit3.Text = Session["khmc"].ToString();
this.TextBox6.Text = Session["dzdh"].ToString();
this.TextBox7.Text = Session["khsh"].ToString();
this.TextBox8.Text = Session["yhzh"].ToString();
}
if (hidden1.Value == "2")//员工选择
{
this.ASPxButtonEdit4.Text = Session["bmmc"].ToString();
this.TextBox22.Text = Session["pqmc"].ToString();
this.TextBox30.Text = Session["ygmc"].ToString();
ygbh = Session["ygbh"].ToString();
bmid = Session["bmid"].ToString();
pqid = Session["pqid"].ToString();
bzid = Session["bzid"].ToString();
}
}
这时我测的部分 session代码,,不知道贴的对不对 你看一下吧
这部分的代码看不出什么问题,你将所有值都存在了session中,Session["khmc"]等等这些你及时的更新了吗,你有必要在本地调试一下这些session的值,有可能本身这些session传过来就不是你想要的东东
BS模式下,你就不应该用static
除非你确定一个变量,在所有用户用的时候都是用同一个值,比如数据库连接字符串
否则只要定义成static,就必然出现互相窜的情况
你这什么理解能力?人家说的是 有Session 作为会话状态,不需要用Static作为状态保持,再着 Static 变量 是全局的共享的,几个人同时使用,肯定会使Static变量混乱。
因为你一个变量是static的,则所有用户看到的数据就都是一样的.
如果服务器IP,数据库连接串这些东西要展示给用户,你用static没有任何问题,反正本来也只有1个,大家看到的是同样的是正常的
而如果是当前用户名,你放static变量里,那能对吗
你这什么理解能力?人家说的是 有Session 作为会话状态,不需要用Static作为状态保持,再着 Static 变量 是全局的共享的,几个人同时使用,肯定会使Static变量混乱。
好吧 我又小白了,,,受教了
观察几天 就结贴,,,先谢谢啊!!!