У меня есть часть кода, которая пытается записать на диск много файлов за одну секунду. Однако это не удается, поскольку я установил Kaspersky Anrivirus 2011.
Stream:= TFileStream.Create(sName, fmCreate);
Код полностью работал с Kaspersky 2010, а также работает с Kaspersky 2011, если отключить его сканеры (он не может быть полностью выгружен из памяти - если он не будет удален). Код также работает, если (Kaspersky 2011 запущен и) Я пишу на диск slooooowly. Таким образом, это явно недостаточно быстро для обработки запросов на диск.
Ошибка, которую я получаю, это EFCreateError ( "Невозможно создать файл xxx blablabla" ). Ошибка случайна. Большинство файлов записываются на диск. Около 10% ошибок.
Я попытался получить поддержку, но невозможно найти реального человека в Kaspersky, чтобы говорить. Их так называемая "поддержка" - это база данных часто задаваемых вопросов. Конечно, это говорит о том, как установить продукт и связанные с ним вещи. О проблемах, связанных с программированием, нет. Любые идеи?
PS: это имеет последствия для всего сообщества Delphi! Все наши клиенты не смогут использовать программное обеспечение Delphi, если они используют KIS 2011 в качестве антивируса. На данный момент я рекомендую своим пользователям отключить их антивирус, но мне нужно настоящее решение.
Хорошо, если человек с KIS 2011 может подтвердить проблему. Просто создайте крошечную программу, которая записывает 200 небольших файлов на диск с помощью TFileStream.
ОБНОВЛЕНИЕ:
- Проблема появляется ТОЛЬКО, когда файл не существует и создается (создается в отличие от перезаписываемого).
- Подобный отчет: https://forums.embarcadero.com/thread.jspa?threadID=32751&tstart=15
- Подобный отчет: http://forum.kaspersky.com/index.php?showtopic=120561
- Возможное решение, которое появилось у меня на ум, заключается в том, чтобы определить, работает ли KIS, и если это так, поставить задержку после каждой записи на диск. Или в режиме аренды, сообщите пользователю, что могут возникнуть проблемы. Кто-нибудь знает, как определить, работает ли служба?
- Я добавил задержку в 650 мс (после каждого создания файла), и ошибка все еще существует). Так что не о том, как быстро вы пишете на диск, но о том, сколько файлов вы пишете.
- Просто удалить KIS 2011. Проблема больше не появляется.
- Просто переустановите старый добрый KIS 2010. Ошибка все еще существует, но она появляется редко (примерно каждые 300 файлов вместо 30, как в KIS 2011).
- Проблема была подтверждена на втором компьютере.
- НОВОСТИ: авария появляется в TFileStream.Create однако может быть вызвана функцией, называемой ранее: TestWriteAccess. Если я отключу эту функцию, TFileStream.Create больше не сработает. Ну, это не слишком сильно меняет ситуацию. Независимо от того, какая строка кода генерирует ошибку, программа по-прежнему не работает (случайно) для записи файлов на диск во время работы Kaspersky.
- Все еще ждет ответ от реального человека из Касперского...
- Более автоматизированные ответы, полученные от Kaspersky Support (я отправил электронные письма для поддержки в нескольких странах). Все указывает на базу данных часто задаваемых вопросов.
- Я изменяю свой статус у своего фаната (и клиента) у Kaspersky hater, потому что я наконец получаю ответ от настоящего человека от службы Kaspersky: Я цитирую: "Является ли het waar просто нагрузок?" Встреча с друзьями, Лаборатория Касперского BV Papendorpseweg 77-79 ". Касперский может быть действительно пиратской компанией. Они не хотят отвечать на электронные письма, потому что они знают, что их продукт s **** y слишком затруднен для исправления.
Чтобы проверить код, попробуйте использовать код в цикле, чтобы создать 1000 файлов. Программа создает кучу файлов (случайное число), затем она не работает в StreamFile: = TFileStream.Create.
Обновление: проблему можно устранить, введя небольшую задержку после создания каждого файла.
https://docs.google.com/forms/d/1H3_O1z1iEqfh9ZT9u3B0R1tGEj-Hc9o7rAE0LKPr33Y
Обновление в 2013 году
Начиная с сегодняшнего дня (после обновления) KIS конфликтует с Delphi. Каждый раз, когда я компилирую проект KIS, вы получаете 100% загрузку процессора. Мне нужно будет удалить его.
Delphi 7, Win 7 (32), KIS 2011