2009-02-16 98 views
0

我有一個.Net程序,作爲它的一個函數,它從一個用戶指定的目錄中取出一個文件,並將它放在另一個特殊的目錄中,通過UNC指定(可能也可能不會是本地的)。我不打開這部分代碼中的任何這些文件。程序在文件移動時終止

這是我在Windows Server 2003 SP2虛擬機上發生的這個奇怪的錯誤,這個程序在移動到本地文件夾時會隨機執行硬中止。它只是終止。沒有例外,沒有日誌記錄,並且它在任何特定時刻似乎都不會發生。我無法在我的開發機器上重現此問題,並且它似乎只發生在大約一兆字節左右的特定類型文件的複製過程中。還有其他格式複製到不同的目錄使用非常相似的代碼,都更小,並且它們工作正常。

爲什麼Windows .Net程序會像這樣做一個硬性中止?我能做些什麼來解決它?

+0

因此,事件日誌中沒有任何內容?嗯。硬件問題? – jdigital 2009-02-16 05:13:42

+0

使用UNC指定目標本地文件夾?它可以使用正常路徑來指定,它是否也有相同的問題?您使用什麼虛擬機軟件來託管虛擬機? – 2009-02-16 05:22:07

回答

0

我猜想網絡故障因爲您提到「通過UNC指定(可能或不可能是本地)」。

我會改變程序來爲文件複製操作添加日誌記錄,如果這是一個選項。

你嘗試做一個「netstat」,而它試圖複製?這可能會告訴您是否可能防火牆端口被阻止。

0

.NET運行時將會保留fail fast並關閉應用程序,而不會另外通知堆棧溢出。但是,這應該在服務器的事件日誌中生成一個條目。您是否在代碼中使用了任何類型的遞歸或分配大型數組等,這可能會導致堆棧溢出?

0

我會改變一行。如果它只是在本地保存文件會發生什麼? 它仍然在這張圖片失敗?你能複製並粘貼代碼的一部分到你的問題嗎?

0

你檢查了事件日誌嗎?有沒有一個反病毒程序搞亂了它?它是否得到了DAP?