【发布时间】:2010-09-17 09:03:26
【问题描述】:
我有一段代码试图在一秒钟内将许多文件写入磁盘。但是,由于我安装了 Kaspersky Anrivirus 2011,它失败了。
Stream:= TFileStream.Create(sName, fmCreate);
该代码完全适用于 Kaspersky 2010,并且如果我禁用它的扫描仪也适用于 Kaspersky 2011(它不能完全从内存中卸载 - 除非它被卸载)。如果(Kaspersky 2011 正在运行并且)我缓慢地写入磁盘,该代码也可以工作。所以它显然不够快,无法处理我的磁盘请求。
我得到的错误是 EFCreateError ('Cannot create xxx file blablabla')。错误是随机的。大多数文件都写入磁盘。大约 10% 失败。
我曾尝试寻求支持,但无法在卡巴斯基找到真正的人与之交谈。他们所谓的“支持”实际上是一个常见问题解答数据库。当然,它谈到了如何安装产品和相关的东西。与编程相关的问题一无所获。有什么想法吗?
PS:这对整个 Delphi 社区都有影响!如果我们所有的客户使用 KIS 2011 作为防病毒软件,他们将无法使用 Delphi 软件。目前我建议我的用户禁用他们的防病毒软件,但我需要一个真正的解决方案。
如果有 KIS 2011 的人可以确认问题,那就太好了。只需创建一个使用 TFileStream 将 200 个小文件写入磁盘的小程序。
更新:
- 仅当文件不存在且已创建(创建而不是覆盖)时才会出现问题。
- 类似报告: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 个文件,而不是像 KIS 2011 中的大约 30 个文件)。
- 问题已在第二台计算机上确认。
- 新闻:崩溃出现在 TFileStream.Create 中,但它可能是由之前调用的函数引起的:TestWriteAccess。如果我禁用此功能,则 TFileStream.Create 不会再失败。嗯,这并没有改变太多。无论哪一行代码产生错误,在卡巴斯基运行时程序仍然无法(随机)将文件写入磁盘。
- 仍在等待来自卡巴斯基的真人的回复...
- 从卡巴斯基支持收到更多自动回复(我向多个国家/地区的支持发送了电子邮件)。都指向一个常见问题数据库。
- 我将自己的状态从卡巴斯基粉丝(和客户)更改为卡巴斯基仇恨者,因为我终于收到了来自卡巴斯基支持的真人的答复,而且这简单而令人讨厌。
要测试代码,请尝试在循环中使用代码,创建 1000 个文件。该程序创建了一堆文件(随机数),然后在 StreamFile:= TFileStream.Create 处失败。
更新:这个问题可以通过在创建每个文件后输入一个小的延迟来解决。
https://docs.google.com/forms/d/1H3_O1z1iEqfh9ZT9u3B0R1tGEj-Hc9o7rAE0LKPr33Y
2013 年更新
从今天下午开始(更新后)KIS 与 Delphi 发生冲突。 每次我编译一个项目时,KIS 都会达到 100% 的 CPU 利用率。我将不得不卸载它。
2017 年更新
从 2017 年开始,我所有的 Delphi 程序的所有误报都神奇地消失了。对于像卡巴斯基这样的程序来说,从病毒列表中删除 Delphi 生成的可执行文件似乎就足够了;所有其他较小的防病毒程序都紧随其后。
德尔福 7、Win 7 (32)、KIS 2011
【问题讨论】:
-
问题:您是否有任何数据表明此问题是 Delphi 编写的应用程序特有的问题,而不是 KIS2011 的一般问题?
-
也许这个问题不仅仅影响Delphi用户:你试过其他编程语言/编译器(C、C++、C#、Java)吗?一个几乎会影响每个软件开发人员的问题可能会得到更广泛的关注。您的问题也可以使用这些编译器的标签来提高可见性...
-
对不起。我只有德尔福。但是,如果其他人可以编译一个创建 1000 个文本文件的小程序(每个文件中只放 100 个字节),我将在我的计算机上对其进行测试。但请使用类似于 TFileStream 的东西。
-
@Omair - “大多数人不会知道他们是误报,实际上会认为 KIS 在识别恶意软件方面做得很好” - 我完全同意你的看法!不过,我已经在所有防病毒程序中看到了它。他们不想纠正误报,因为这对他们的销售有好处!!!!!!我的申请多次被列为误报。
-
@altar 但好消息是:卡巴斯基互联网安全只有 4.48%,卡巴斯基杀毒软件只有 2.43 的市场份额!(来源:thewindowsclub.com/…)查看这份报告,您是否遇到了问题kis 或其他 av 的呢?您确实知道您可以在 virustotal.com 和 novirusthanks e.t.c 上发送您的程序以获取完整的 av 报告(针对所有 av 和反木马)
标签: delphi