[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/3574154.html ]
现象:公有静态变量不可用于ASP.NET多用户操作,否则该变量会被多用户改写,导致错误。参考: http://blog.csdn.net/dobly/article/details/54826
解决:可以使用public static Dictionary<key,value>来实现多用户互斥操作。其中key存放唯一的用户登录ID,value存放数据内容。
e.g.
Global.aspx.cs:
public static class Global
{
public static Dictionary<int, string> DataChangesTempXML;
public static void InitDic()
{
//当用户登录的时候添加用户字典
if (DataChangesTempXML == null)
DataChangesTempXML = new Dictionary<int, string>();
if (!DataChangesTempXML.ContainsKey(PlatBaseUserTBO.LoginInfo.UserID))
DataChangesTempXML.Add(PlatBaseUserTBO.LoginInfo.UserID, "");
}
}
Login.aspx.cs:
Global.InitDic();
xx.aspx.cs:
//对字典赋值
Global.DataChangesTempXML[PlatBaseUserTBO.LoginInfo.UserID] = id;
//获取字典对象
m_DataChangesTempTEN.Changesxml = Global.DataChangesTempXML[PlatBaseUserTBO.LoginInfo.UserID];