提交到SendEmail()后,进程无法访问该文件

时间:2016-09-02 20:04:05

标签: asp.net filelock

我创建了一个XML文件,我需要在注册时通过电子邮件发送给用户。 创建XML文件后,我将其作为附加文件名(使用ServeMapPath)传递,电子邮件程序将文件发送给电子邮件。是啊。但是,我想删除该文件。

出现SmtpClient客户端=新的SmtpClient(settings.SMTPServer);发送电子邮件后锁定文件。即使我等了很长时间,它仍然被锁定。使用Visual Studio中的IISExpress。如果我存在Visual Studio并重新打开调试,我可以删除或覆盖该文件一次。

这是在Visual Studio或???下开发的特征吗?任何测试工作? IIS会将文件锁定在生产服务器上吗?

1 个答案:

答案 0 :(得分:1)

我是否因为找到解决问题的方法而获得积分?

电子邮件发送例程创建了与SMTPClient的连接,我也创建了一个新的Message。我做了一个client.Dispose(),但不是为了消息。当我做了一些清理工作,比如message.Dispose(),文件解锁后我的应用程序可以在完成后将其删除。

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

我希望这有助于其他人。