【发布时间】:2012-07-12 13:25:30
【问题描述】:
我有一个服务(C# 服务)在多台计算机上运行并共享同一个文件(在网络存储上,比如 NAS)。我想确保在执行写操作时,我应该能够获得文件的锁,写入然后解锁它。
如何在网络上锁定文件,写入文件时?
【问题讨论】:
-
一次只有一个进程可以写入文件。所以让操作系统担心那部分。
-
这里的问题是这些进程可能运行在不同的机器上而不是相同的。
-
如果您以写入权限打开文件并且没有明确要求写入共享,它将自动以独占方式打开文件,并锁定对它的访问权限。
-
请更具体地说明您所说的“获取锁”是什么意思。你想让这个锁完成什么?防止文件被删除?阻止另一个进程写入文件?防止另一个进程锁定文件?
标签: c# windows file-io filesystems multiprocessing