[一篮饭特稀原创,转载请注明出自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:
1 public static class Global 2 { 3 public static Dictionary<int, string> DataChangesTempXML; 4 public static void InitDic() 5 { 6 //当用户登录的时候添加用户字典 7 if (DataChangesTempXML == null) 8 DataChangesTempXML = new Dictionary<int, string>(); 9 if (!DataChangesTempXML.ContainsKey(PlatBaseUserTBO.LoginInfo.UserID)) 10 DataChangesTempXML.Add(PlatBaseUserTBO.LoginInfo.UserID, ""); 11 } 12 }
Login.aspx.cs:
1 Global.InitDic();
xx.aspx.cs:
1 //对字典赋值 2 Global.DataChangesTempXML[PlatBaseUserTBO.LoginInfo.UserID] = id; 3 //获取字典对象 4 m_DataChangesTempTEN.Changesxml = Global.DataChangesTempXML[PlatBaseUserTBO.LoginInfo.UserID];