C# 错误:其他用户正在使用此文件

C# 错误:其他用户正在使用此文件,c#,linq-to-xml,C#,Linq To Xml,XMl 当一个项目同时打开Mozilla和IE8时,我的xml文件被另一个用户使用,但当然有时会出现此错误,有时不会出现错误 编辑 如果两个用户同时请求,则为显示提供一个使用XML的页面。在这种情况下,我希望同时打开一个XMl文件,该文件被另一个用户使用时出错。我假设您正在寻找一种方法,以查看该文件是否已被另一个用户使用,并因此被锁定,然后您会得到一个错误 如果要在用户之间共享,则可以在共享模式下加载: var doc = XDocument.Load(Server.MapPath(".") +

XMl

当一个项目同时打开Mozilla和IE8时,我的xml文件被另一个用户使用,但当然有时会出现此错误,有时不会出现错误

编辑


如果两个用户同时请求,则为显示提供一个使用XML的页面。在这种情况下,我希望同时打开一个XMl文件,该文件被另一个用户使用时出错。我假设您正在寻找一种方法,以查看该文件是否已被另一个用户使用,并因此被锁定,然后您会得到一个错误

如果要在用户之间共享,则可以在共享模式下加载:

var doc = XDocument.Load(Server.MapPath(".") + "\\Questions.xml");
var elements = from element in doc.Descendants("Question")
               select new
               {
                   Id = element.Element("Id").Value,
                   Text = element.Element("Text").Value,
                   Reserver = element.Element("Reserver") != null
               };
(注意:未测试的代码。)

使用FileAccess和FileShare,您可以调节共享访问的方式。例如,在本例中,文件只能为共享读取而打开,不能进行写入。如果要允许写入,则需要指定
FileShare.ReadWrite
。但是,当您读取文件时,它可能会发生更改


如果这是在ASP.NET下(我假设你有多个用户),你可能想考虑在第一次读取内存中缓存文件。

错误:这个文件由另一个USERI使用,可以从问题的标题中看到这个文件。你能解释一下你想做什么吗?(从你的问题)你在谈论什么项目?
var doc = XDocument.Load(Server.MapPath(".") + "\\Questions.xml");
var elements = from element in doc.Descendants("Question")
               select new
               {
                   Id = element.Element("Id").Value,
                   Text = element.Element("Text").Value,
                   Reserver = element.Element("Reserver") != null
               };
using (FileStream fs = File.Open(Server.MapPath(".") + "\\Questions.xml", FileMode.Open, FileAccess.Read, FileShare.Read)) {
  var doc = XDocument.Load(fs);
  // ... rest of your code...
}