在某些Windows 7计算机

时间:2015-06-08 06:16:18

标签: rename filesystemwatcher readdirectorychangesw

这个对我来说太离奇了。在我的Framework 4.0 WinForms应用程序中,FileSystemWatcher最近开始给我一个OldName的null,只有OldFullPath的父文件夹,而不是旧文件名的完整路径。但是,有些Windows 7计算机会执行此操作,而有些则不会。我试图暂时卸载我们公司的反病毒程序,但这并没有任何区别。我回滚了我的代码,但它没有任何区别。

我尝试将我的应用程序从Framework 4.0切换到4.5.2,但问题仍然存在。事实上,我认为问题的程度低于.NET,因为我编写了一个使用ReadDirectoryChangesW()的测试C ++程序,并出现了类似的问题:问题计算机从未收到FILE_ACTION_RENAMED_OLD_NAME通知,只收到FILE_ACTION_RENAMED_NEW_NAME通知。

我比较了在问题计算机上运行的正在运行的进程和结束的进程,而没有在非问题计算机上运行。两台计算机都是最新的Windows更新;我希望不必开始卸载它们。

我有一台Windows 8计算机,问题不存在;但是,从7升级到8不是其他几个部署的选项。

我突然想到在相应的机器上查看kernel32.dll,因为这是ReadDirectoryChangesW()所在的位置。它有所不同。

工作:v6.1.7601.18798 不好用:v6.1.7601.18869

我最近需要更改API吗?

更新:我找到了一台带有v6.1.7601.18409的非工作机器,因此不是问题。

1 个答案:

答案 0 :(得分:2)

总之,卡巴斯基。

详细说明,我以为我已经测试过删除KAS但是我可能没有重新启动或者其他东西,这很奇怪,因为它也安装在工作的计算机上而不会出现问题 - 同名版本的KAS。

请注意,此版本是企业版,可安装:

适用于Windows的Kaspersky Endpoint Security 10 和 卡巴斯基安全中心网络代理

中央策略被推送到每台客户端计算机并强制执行。它可以控制设置,例如受信任的应用程序(白名单)。当IT推出我的特定应用程序的白名单条目时,它解决了问题。

请注意,每个受信任的应用程序条目都有几个复选框可供选择。此修复只需要其中一个。

在“设置”下反病毒保护|排除和可信应用程序|设置,有一个可以添加的列表。

不要扫描打开的文件 X不监视应用程序活动   不要继承父进程(应用程序)的限制   不要监视子应用程序活动   允许与应用程序界面交互   不扫描网络流量

值得一提的是我的同事Arti Chauhan,他不止一次地建议说KAS可能是问题所在。我想我已经完全测试了,我想我没有。