0
我有以下代碼(或其等價物):進程無法訪問文件附件
var provider = new System.Net.Http.MultipartFormDataStreamProvider([...]);
try
{
if (provider.FileData.Count != 0)
{
foreach (System.Net.Http.MultipartFileData file in provider.FileData)
{
Trace.WriteLine(file.Headers.ContentDisposition.FileName);
Trace.WriteLine("Server file path: " + file.LocalFileName);
AddAttachment(file.LocalFileName, file.Headers.ContentDisposition.FileName.Replace("\"", ""));
if (attachmentPaths.Length != 0)
{
attachmentPaths += ";";
}
attachmentPaths += file.Headers.ContentDisposition.Name.Replace("\"", "");
}
}
}
catch (Exception ex)
{ ... }
...
public void AddAttachment(string attachmentFileName, string attachmentName)
{
var AttachmentList = new List<System.Net.Mail.Attachment>();
System.Net.Mail.Attachment newAttachment = new System.Net.Mail.Attachment(attachmentFileName);
newAttachment.Name = attachmentName;
AttachmentList.Add(newAttachment);
}
而且我收到「進程無法訪問該文件...因爲它是被另一個過程「錯誤。我只想知道我的應用程序可能在哪裏得到錯誤。我不知道它在哪裏實際上是試圖訪問該文件。我最好的猜測是在附件構造函數中,但我真的不確定。
附註:我不知道如何觸發它。這是在夜間電子郵件過程中發生的,我在日誌中看到錯誤。除了修正它以更好地處理錯誤之外,我寧願不對該程序進行任何更改。也就是說,我認爲我不能調試它。 – BCarpe
這是一個非常正常的事故。可能是因爲你的程序中有一個錯誤,並且你沒有關閉/處理這個文件。可能是因爲一些其他進程也打開了文件,就像異常說的那樣。可能是因爲反惡意軟件會在完成掃描文件之前阻止訪問。縮小範圍完全取決於你。產生一個響亮的警報,以便您可以快速檢查機器當然是必要的。 –
感謝評論,漢斯。我瞭解該文件正在被別的東西使用。我不明白的是我試圖在上面的代碼中訪問它的地方。據我所知,它沒有進行任何讀取,寫入或刪除操作。 – BCarpe