У меня есть набор ночных отчетов.
Иногда я получаю исключение:
Процесс не может получить доступ к файлу, потому что он используется другим процессом
Как узнать, какой процесс хранится в файле? Я думаю, что это McAfee, но мне нужно это доказать.
У меня есть набор ночных отчетов.
Иногда я получаю исключение:
Процесс не может получить доступ к файлу, потому что он используется другим процессом
Как узнать, какой процесс хранится в файле? Я думаю, что это McAfee, но мне нужно это доказать.
Проблема заключалась в том, что MailMessage в .NET поддерживал вложения файлов. Я должен был сделать распоряжение на вложении, а затем он работал.
Используйте инструмент, например Process Explorer или Process Monitor.
Attachment data = new Attachment(@"c:\filename");
'send email....
data.Dispose();
здесь некоторый инструмент (ы), который сообщает и разблокирует заблокированные файлы: http://ccollomb.free.fr/unlocker/
Подтверждено. У меня была аналогичная проблема, и я сделал то, что сказал Грег.
В блоке finally
после отправки сообщения я просто поместил его туда, и он выпустил дескрипторы файла:
foreach(Attachment a in message.Attachments) a.Dispose();
Filemon может быть инструментом, который вы ищете.
(или даже Process Monitor, который, очевидно, заменил FileMon.)
GC.Collect() после удаления должен его исправить.
Я пытался запустить Java-программу и получил сообщение. В диспетчере задач уже была запущена задача Java (looping?), Когда я убил этот процесс, мой процесс смог запустить.
У меня была такая же проблема, но в моем случае я пытался удалить файл .mdf в Visul Studio 2012. Не так много информации об ошибке, чтобы помочь мне решить эту проблему, и поэтому я пришел сюда, чтобы найти помощь, Тогда я понял, что, несмотря на свою аналогичную проблему, это был совсем другой процесс, с которым мне пришлось иметь дело.
Я попытался удалить файл .mdf в проводнике Windows, а затем я дал мне ошибку, что SQL Server 2008 R2 на самом деле держался за файл, хотя я удалил базу данных. Как только я понял, что все, что мне нужно было сделать, это закрыть SQL Server 2008 R2 и попытаться удалить файл снова, и он сработал.
Если вам нужны инструкции по включению и выключению SQL Server 2008 R2, см. ссылку ниже.