2010-05-12 132 views
0

我有一個asp.net網站,我已經做了.Dispose()這裏是我的代碼如下;該進程無法訪問該文件,因爲它正在被另一個進程使用

嘗試 {

 MailMessage newMail = new MailMessage(MailFrom, MailTo, 

MailSubject,的MailMsg);

 if (MailAttachment != "") 
     { 
      Attachment data = new Attachment(MailAttachment, 

MediaTypeNames.Application.Octet); newMail.Attachments.Add(data); } newMail.BodyEncoding = System.Text.Encoding.UTF8; newMail.IsBodyHtml = true;

 SmtpClient client = new SmtpClient("192.168.2.205"); 
     client.Credentials = CredentialCache.DefaultNetworkCredentials; 
     client.Send(newMail); 

     newMail.Attachments.Dispose(); 
     newMail.Dispose(); 

     DeleteAttachment(MailAttachment); 

     lblSuccess.Text = "Başvurunuz alınmıştır teşekkürler."; 
     lblSuccess.Visible = true; 
     ClearForm(); 
    } 
    catch (Exception ex) 
    { 
     lblSuccess.Text = ex.Message; 
     //lblSuccess.Text = "Bir sorun oluştu bir daha deneyiniz."; 
     lblSuccess.Visible = true; 
    } 

但我得到同樣的錯誤,它的運行良好,在我的本地主機,但在服務器我越來越此錯誤。我該如何解決它?

+0

也許它被另一個進程使用? 嘗試提供更多信息。 – 2010-05-12 08:13:55

+0

也許更大的代碼片段將有助於 – Midhat 2010-05-12 08:14:34

+0

我編輯並給出了一個更大的代碼片段,希望它會有幫助 – Xenon 2010-05-12 08:19:31

回答

3

調用處理附件對象。

呼叫在SmtpClient上處置,不會在附件上調用它。

+0

它沒有奏效。所有同樣的作品在本地,但不是在服務器? – Xenon 2010-05-13 08:29:08

+0

你打電話給data.Dispose()嗎?或只是在附件集合?嘗試個人附件。如果這不起作用,你可以做的另一件事是將文件讀入一個字節數組,並從字節數組創建附件。 – 2010-05-13 12:13:21

+0

btw,這裏是一個codesnippet來幫助: byte [] data = File.ReadAllBytes(「c:\\ temp \\ sample.jpg」); MemoryStream ms = new MemoryStream(data); 附件a =新附件(ms,「sample.jpg」); m.Attachments.Add(a); m.Attachments.Add(a); File.Delete(「c:\\ temp \\ sample.jpg」); – 2010-05-13 12:25:08

相關問題