Метод 'DeleteFile' объекта 'IFileSystem3' не выполнен. Система зависает, если попытаться удалить / переименовать после этой ошибки
У меня есть система с ОС Windows 7. У меня есть один проект автоматизации, который выполняет работу по настройке с использованием оболочки NSIS. Есть много файловых операций, таких как копирование и удаление файлов и т. Д. Когда конкретный файл удаляется в визуальном базовом кодировании, я получаю сообщение об ошибке, например «Метод« DeleteFile »объекта« IFileSystem3 », сбой». Файл для этой ошибки - MDAC_TYP.EXE с размером 5 МБ.
Сценарий:
Диск сервера (Windows Server 2012) сопоставлен с локальной системой Windows 7, и вся операция выполняется на этом сопоставленном диске на клиентском компьютере. И клиент, и сервер подключены к локальной сети 1 Гбит / с. Теперь, когда я запускаю свой проект для сборки установки, он копирует все файлы приложения в папку с именем Temp и затем строит исполняемый файл установки с использованием NSIS (makeNSIS). После создания установки NSIS он удалит все исходные файлы из временной папки и снова скопирует некоторые другие файлы в ту же временную папку для следующей настройки.
Иногда при удалении файла MDAC_TYP.exe я получаю сообщение об ошибке, как указано выше. Есть две папки с одинаковой структурой, которые называются «Build1» и «Build2». Build1 используется для среды тестирования, а Build2 - для производственной среды. Временная папка будет создана в обеих папках во время тестирования и настройки производства.
Вышеупомянутая ошибка возникает как для папок Build1, так и для Build2, и эта ошибка возникает иногда (не каждый раз) для одного и того же исполняемого файла. Файл MDAC_TYP.EXE имеет разрешение только на чтение в том месте, откуда я копирую файл в каталог TEMP внутри build1 и build2 для сценария NSIS. В коде Visual Basic я использую метод FileSystemObject.DeleteFile с параметром force, установленным в true.
Как только появляется ошибка, я не могу переименовать / удалить / переместить файл ни на одном из ПК через UNC или даже на сервере, его нельзя удалить. Если я пытаюсь переименовать / удалить файл или его родительскую папку, система, из которой я пытаюсь удалить / переименовать, зависает. Даже если мы перезагрузим клиентский компьютер, на котором произошла ошибка, операция не решит проблему. Единственное решение, которое я нашел, это перезагрузить мой сервер. После перезагрузки сервера файл можно переименовать или удалить. Другие методы, которые я попробовал, описаны ниже.
- Проверен дескриптор файла с помощью проводника процессов как на клиенте, так и на сервере - дескрипторы не найдены
- Проверено Открывать файлы в общих папках сервера. - Не найдено соединение с открытым файлом для файла.
- Попытка перезагрузки клиентского компьютера - не решена.
- Попытка удалить / переименовать файл с помощью команды на сервере - невозможно.
- Пытался удалить / переименовать файл на сервере - без ошибок и без сообщений. Вместо этого сервер застревает.
- Проверен на наличие проблем с диском, используя chkdisk на сервере. О проблемах не сообщалось.
- Разрешение папки - у пользователя есть полное разрешение и нет проблем.
- Пробовал запускать тот же процесс сборки после перезагрузки - все работает нормально. Но снова повторяется через некоторое время / день.
- Попытка отсоединения подключенного диска во время ошибки существует. Но все равно переименовать не удалось.
- Нет журнала антивируса / просмотра событий как на клиенте, так и на сервере.
Первоначально ошибка была в моем компьютере с Windows XP. Теперь я обновился до Windows 7 (Свежая установка), и ошибка все еще приходит в новой машине Windows 7.
Обновить:
Я недавно заметил, что такая же ошибка также возникает при удалении файла msstdfmt.dll
Обновление 2:
Я также получил ошибку для файла MS Word, ошибка такая же. Во всех 3 случаях я обнаружил, что есть только одна общая вещь: все 3 файла имеют атрибут только для чтения.
0 ответов на вопрос
Похожие вопросы
-
2
Windows 7 Home Premium запоминает пароли общего доступа к сети?
-
4
Как узнать, кто вошел в Windows XP?
-
3
Как обстоят дела с папкой C: \ Program Files \ xerox \ nwwia?
-
-
3
Почему отключение моего флэш-накопителя приводит к синему экрану?
-
2
Есть ли какой-нибудь способ получить пункт меню «отправить в -> получатель почты» в Gmail?
-
2
Почему установщик IIS не может скопировать staxmem.dll, несмотря на то, что он находится в указанной...
-
4
Как заблокировать выровненные по правому краю панели инструментов в Windows 7, чтобы они не выглядел...
-
1
Переключить настройки DNS для каждого пользователя Windows?
-
4
Есть ли способ поделиться сканером многофункционального принтера?
-
4
Функция Windows 7 «Aero Snap» в Ubuntu GNOME