У меня запущена служба Windows с локальной системной учетной записью
Что делает моя программа:
if (File.Exists(outputPath))
{
File.Delete(outputPath);
}
File.Move(archivePath, outputPath);
Соответствующая папка - это папка приложения iis, в которой удостоверение пула приложений - ApplicationPoolIdentity, расположенное в каталоге c: \ MyAppFolder.
Моя служба Windows выполняет свою работу несколько раз в день, и мои клиенты проверяют наличие новой версии каждые 5 минут (0,5,10,15 ...) и загружают этот файл.
Время от времени файл каким-то образом «блокируется» в файловой системе, а затем
- IIS дает 401 ошибка
- Файл не может быть удален
Мой первый вопрос, как мне воспроизвести эту ситуацию?
Один патч сделан коллегами:
var fs = File.GetAccessControl(outputPath);
fs.SetAccessRuleProtection(false, false);
File.SetAccessControl(outputPath, fs);
Хотя этот патч, похоже, снова произошла ошибка,
Я могу подать заявку, также это решение.
Достаточно или необходимо этих решений?
Опять же, мой первый вопрос - важная «проблема репро» и понимаю, почему это происходит.