我们的应用程序在客户端服务器 A 上运行,并使用以下命令在服务器 2008 R2 文件服务器上创建一个文件:
CreateFile(LockFileName,
GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ, nil,
CREATE_ALWAYS,
FILE_FLAG_WRITE_THROUGH or FILE_FLAG_DELETE_ON_CLOSE,
0);
客户端正在测试灾难情况并关闭“服务器 A”并将其关闭。他们报告说,我们在“服务器 B”上使用相同文件名和相同代码片段运行的应用程序失败(即文件继续存在)至少 15 分钟,直到我们相信,他们浏览到包含该文件的文件夹Windows 资源管理器,此时文件将被自动删除。
有没有人知道这在这种情况下应该如何表现,创建服务器已经消失,是否应该释放句柄并自动删除文件?为什么查看文件会导致它被删除?
有趣的是,在另一个据称类似的设置中,该问题不会发生。