2011-03-17 80 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規則的替代。

相關問題