我在做一个考试系统,试卷是以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文件同时被多个用户访问

解决方案 »

  1.   

    你是用什么方式读的这个xml文件啊。
      

  2.   

    试试用FileShare.ReadWrite:
      
    FileStream fs = File.Open(Server.MapPath("books.xml"), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(fs);
    ...
      

  3.   

    操作的时候可以Lock这个文件看看MSDN中Lock的用法~~~
      

  4.   

        * xray2005
        * ♂风车车.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,怎么用