我在做一个考试系统,试卷是以xml形式保存的,每个人考试会建一个xml文件,他在考试时对该xml文件进行操作,可是不知道为什么,经常会有客户反映,有出这样的错误:"E;\kmweb\bm\testxml\1001qst.xml该文件的路径不能被访问",但是这样的错误可能是很多次,才会出现一次,我反复的新建和读取,修改试卷从来没有出现这种问题,我现在就是想知道怎么才会出现这种情况呢,希望有经验的前辈指点///////////////////////////////////////////////////////////////////////////////////
* BearRui
* AK-47
* 等 级:
发表于:2007-09-25 09:24:052楼 得分:0
很有可能是多用户并发的问题,你操作不会出错是因为就你1个人在操作,如果多个人在同时操作的时候,有1个人正在读取1001qst.xml文件,另1个人再访问的时候就不能访问了,因为xml文件一次只能被1个人访问
//////////////////////////////////////////////////////////////////////////////////
如何防止xml文件同时被多个用户访问
* BearRui
* AK-47
* 等 级:
发表于:2007-09-25 09:24:052楼 得分:0
很有可能是多用户并发的问题,你操作不会出错是因为就你1个人在操作,如果多个人在同时操作的时候,有1个人正在读取1001qst.xml文件,另1个人再访问的时候就不能访问了,因为xml文件一次只能被1个人访问
//////////////////////////////////////////////////////////////////////////////////
如何防止xml文件同时被多个用户访问
解决方案 »
- JQuery中阻止后台按钮Click事件
- 求助 c# 怎样用 MySQLDriverCS操作mysql进行update、insert、deleted等操作
- c# winform Dev GirdControl 从表编辑问题
- winform XtraGrid左下角有个显示总行数的东西,请问是怎么调出来的!
- 来电显示器
- 怎样使窗口处于桌面的最上端?
- C# 怎样使listbox中数据横向排列 我写出的都是纵向排列
- C#串口通信疑问
- WPF 多线程按顺序读写同一INT变量问题
- 求Crystal Report for VS.NET的注册号和密钥号码
- 如何实现将三个div从左到右相临分布在一个总div里面?
- 输入一串字符,如"this is test",将这串字符反向输出,也就是"test is this",请问大哥大姐怎么去实现它,请贴出代码,谢谢.
FileStream fs = File.Open(Server.MapPath("books.xml"), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(fs);
...
* ♂风车车.Net(http://xray2005.cnblogs.com)
* 等 级:
发表于:2007-10-11 16:51:592楼 得分:0
试试用FileShare.ReadWrite:C# code FileStream fs = File.Open(Server.MapPath("books.xml"), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(fs); ...////////////////////////////////////////////////////////////////////////////////////////就是不能要两人同时访问,两人同时访问考试,逻辑上不好判断看一下lock,怎么用