468,539 Members | 1,575 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,539 developers. It's quick & easy.

Releasing file locks on email attachments?

My web app creates several temporary files, then attaches them to an email
that it sends out. When the app attches the documents to the email, .NET
locks the files. My problem is that they aren't getting unlocked.

When the app runns, the first thing it does is delete the files left from
its last run. So, on the second run of the app, I'm getting this error
message: " The process cannot access the file 'D:\ ... \MyFile.txt' because
it is being used by another process." In other words, the server can't
delete the temporary files because the locks placed on them when they were
attached to the email in the previous run were never released.

I tried adding some code immediately after the email send in an attempt to
get the locks released:

************************************************** *********

// Send server error email
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(email);

// Clear attachments
if (email.Attachments.Count 0)
{
email.Attachments.Clear();
email.Attachments.Dispose();
}

// Dispose email
email.Dispose();

************************************************** ************

But that didn't do the trick.

Can anyone tell me how to release the locks placed on files when they are
attached to an email? Thanks.

David Veeneman
Foresight Systems
Feb 15 '07 #1
2 1833
I found my answer.

Apparently, you have to call Dispose() on each attachment--calling Dispose()
on the attachments collection isn't enough.

So, do a foreach iteration of the attachments collection, calling Dispose()
on each item in turn. That releases the file locks.

Then call Dispose() on the attachments collection, and on the email message.
These latter two steps aren't necessary to release the file locks, but they
are recommended to free up server resources the next time garbage collection
occurs.

David Veeneman
Foresight Systems
Feb 15 '07 #2
Thanks, it saved a lot of my time.

Mar 5 '07 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Paul Lamonby | last post: by
1 post views Thread by David Veeneman | last post: by
3 posts views Thread by olafmol | last post: by
reply views Thread by =?Utf-8?B?amVhbm9mbWlubmVhcG9saXM=?= | last post: by
1 post views Thread by rottmanj | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.