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