2011-03-17 64 views
0

有一个函数,我已经写了基本上一天4次为我加密,并将加密写入一个xml文件。现在我们有4个区域,分别是Dev,QA,ITE和PROD。我在DEV,QA,ITE没有得到任何错误,但是在PROD中,奇怪的事情正在发生。 上的代码的失败的第一个例外是这个为什么会发生这种不正常的XML行为

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#和ASP.NET 2.0。

有人能够启发我吗?

+0

你可以发布你如何使用该文件的代码示例? – 2011-03-17 15:16:50

+0

对不起,队友不能发布代码。严格规则 – gizgok 2011-03-17 15:19:13

+0

您是否可以在不包含公司代码的单独项目中重新创建问题,并且只要您的问题可见,就可以使用虚拟名称? – 2011-03-17 16:22:57

回答

1

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

Process Explorer可以在这里帮助:搜索文件的名称,以查看哪些进程对文件进行处理。

关于XML错误:XML是“很好形成”或它不是XML。这意味着只有一个根元素。

嘛形成:

<root> 
    Stuff 
</root> 

不是XML:

<root1> 
    Stuff 
</root> 
More stuff 

有.NET加载 “XML片段”,它可以打破文档规则中能力有限,但这是真的插入成为一个完整的文档,而不是作为XML规则的替代。

相关问题