我有一个工业PC (Windows 7)运行服务器应用程序,当pc突然关闭(电源短缺)时,服务器应用程序经常会损坏文件,我发现更改代码设置FILE_WRITE_THROUGH标志解决了应用程序编写文件时出现的问题。
问题是,当我在系统中copy+paste某个文件时,等待5秒,然后关闭(拔掉)机器,这些文件仍然总是被破坏,通过在十六进制编辑器中打开损坏的文件,我可以看到从文件的一半打开,它的所有字节都被设置为0。
是否有办法防止这种影响?是否可以在系统级别上更改FILE_WRITE_THROUGH的默认值,以便所有文件操作都开始像我的应用程序一样?
发布于 2016-04-04 19:52:45
除了安装UPS (您确实应该安装UPS)之外,还有一个设置可以告诉系统,以确保所有内容都立即写入磁盘,而不是保存在系统缓存中:

当然,禁用磁盘缓存会降低系统性能。但是f.e。它是由Windows在域控制器上自动完成的,它绝对必须确保目录更新在DC认为是的情况下被写入AD数据库。
发布于 2016-04-04 18:44:57
为该系统购买UPS,并安装/配置所包含的软件,以便在失败时执行系统的优雅关闭。这将防止您和其他许多人一起遇到问题。
https://serverfault.com/questions/768102
复制相似问题