2016-09-02 34 views
0

我創建了一個XML文件,我需要在註冊時通過電子郵件發送給用戶。 創建XML文件後,我將它作爲附加文件名(使用ServeMapPath)傳遞,並且電子郵件程序將電子郵件與文件一起發送。是啊。但是,我然後想要刪除該文件。提交到SendEmail後,進程無法訪問該文件()

它出現在SmtpClient客戶端=新的SmtpClient(settings.SMTPServer);在發送電子郵件後鎖定文件。即使我等了很長時間,它仍然是鎖定的。從Visual Studio使用IISExpress。如果我存在Visual Studio並重新打開調試,則可以刪除或覆蓋文件一次。

這是在Visual Studio下開發的一個特性嗎?任何變通的測試? IIS會將該文件鎖定在生產服務器上嗎?

回答

1

我可以通過尋找解決方案解決我自己的問題賺取積分嗎?

電子郵件發送例程創建一個到SMTPClient的連接,並且我也創建了一個新的消息。我做了一個client.Dispose(),但不是消息。當我做了一些清理,比如message.Dispose(),文件解鎖,然後我的應用程序可以在完成時刪除它。

SmtpClient client = new SmtpClient(settings.SMTPServer); 
MailMessage message = new MailMessage(); 
.... 
//send message with attachment 
.... 
client.Dispose(); 
message.Dispose(); 

我希望這可以幫助他人。

+0

您獲得瞭解答您的問題的聲譽,+1! –

相關問題