检测和处理应用程序突然结束任务,重新启动和关闭

本文关键字:重新启动 任务 结束 处理 应用程序 突然 检测 | 更新日期: 2023-09-27 18:12:07

我有一个存储XML加密文档的应用程序,每次应用程序想要访问XML文件时,它都必须(解密->读取->写入->加密)。如果突然关闭或重新启动,甚至任务管理器中的结束任务都会导致XML中的数据损坏或未加密的XML文件,那么在下次运行时将产生错误。

我的想法是将整个XML内容存储在数据库中,并检查是否有错误,然后替换旧内容。

检测和处理应用程序突然结束任务,重新启动和关闭

您应该在内存中执行解密/加密。永远不要在磁盘上存储未加密的数据。加载加密数据,在内存中解密。保存时,先在内存中加密,然后再存储。

即使在突然关闭的情况下,也很难以一种安全的方式替换文件的整个内容。一种解决方法是以临时名称创建一个新文件,当它完全写入磁盘时,删除旧文件并重命名新文件。但是,这还有其他含义,例如特定于正在丢失的文件的安全权限。

一个更好但更高级的选择是将所有内容移到具有事务支持的数据库中