为什么这种异常的xml行为会发生

时间:2011-03-17 15:15:26

标签: c# asp.net xml

我编写的函数基本上每天为我加密4次,并将加密写入xml文件。现在我们有4个区域,分别是Dev,QA,ITE和PROD。我没有在DEV,QA,ITE中遇到任何错误,但在PROD中发生了奇怪的事情。 代码失败的第一个例外是

Invalid XML document, The document does not have a root element.. at System.Xml.XmlDocument.Save(String filename)

也得到了这个例外:

The process cannot access the file 'configfile.xml' because it is being used by another process.   at System.IO.__Error.WinIOError(Int32 errorCode, StringmaybeFullPath)at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.Xml.XmlDocument.Save(String filename)

我感觉这是由于并发请求而发生的。使用的编程语言是C#with ASP.NET 2.0。

有人可以启发我吗?

1 个答案:

答案 0 :(得分:1)

“另一个进程正在使用的文件”异常肯定是尝试并发访问(这可能来自当前进程)。

Process Explorer可以在这里提供帮助:搜索文件名以查看哪些进程处理了该文件。

关于XML错误:XML是“Well Formed”还是XML。这意味着只有一个根元素。

组建良好:

<root>
  Stuff
</root>

不是XML:

<root1>
  Stuff
</root>
More stuff

.NET中加载“XML Fragments”的能力有限,这可能会破坏文档规则,但这实际上是为了插入完整的文档,而不是作为XML规则的替代。