程序写入文件时不愿意同步网络文件夹

程序写入文件时不愿意同步网络文件夹

我正在尝试编写一个执行一些读取/处理/写入操作的程序。

当我给我的程序一个本地路径时,一切都运行正常,但我面临一个不寻常的问题:当我通过局域网处理文件时,内存使用量巨大。

如果文件路径类似于“ //network_address/folder/*.ext”,则程序将使用大约 4G RAM(而当路径类似于“ c:/folder/*.ext”时,则使用 500 - 1G)

我使用进程监视器查看发生了什么,并注意到“ c:\windows\csc\v2.0.6\namespace”文件夹中持续读取失败 - 我甚至不知道这个文件夹的存在。研究后,我发现它用于与网络服务器同步文件,可能用于离线查看网络文件。

上述故障恰好发生在写入文件过程开始之前(而不是读取之前),命名空间文件夹未被使用,我没有同步任何内容,并且对网络驱动器的实际写入成功。

我没有设置任何同步文件夹的选项......(而且我也不想)

当我拥有该文件夹的所有权后,内存使用量就下降了(尽管在进程监视器中仍然出现读取错误)。

所以......我认为我的问题是我一直在尝试做一些我不被允许做的事情,并且在我尝试做我不被允许的事情时使用大量内存来保存数据,直到我失败并最终将数据放在它所属的位置......

解决办法是:避免做那些我不被允许做的事情,对吗?

有没有办法(最好是我可以在代码中运行的命令行,或者我可以修改的注册表项)可以阻止我的程序同步文件(如果发生了这种情况)或在读取网络驱动器时使用该命名空间文件夹?

我怎样才能防止 Windows 在我背后同步文件,并将文件直接写入网络文件夹?

答案1

你解决了这个问题吗?尝试禁用共享中的脱机文件:

  1. 右键单击共享
  2. 转到共享选项卡
  3. 点击高级共享按钮
  4. 单击缓存按钮
  5. 选择“共享文件夹中没有文件或程序可离线使用。”
  6. 单击“确定”关闭“离线设置”弹出窗口
  7. 单击“确定”关闭“高级共享”弹出窗口
  8. 单击“关闭”关闭共享的属性框

您可以从客户端 PC 尝试的另一件事是,如果是 Win7/Vista,则禁用脱机文件服务。

让我们知道结果如何。

答案2

10 年过去了,这仍然是一个问题!但令我惊讶的是,我实际上从微软那里得到了一个“修复”。我在 Windows 10 AVD 主机上遇到了这个问题,解决方案如下:

虽然未启用离线文件,但服务仍在运行 - 这显然导致了此问题(?)

因此,您需要做的是在有问题的计算机上运行 gpedit.msc,然后转到本地计算机策略 -> 管理模板 -> 网络 -> 脱机文件 -> “允许或禁止使用脱机文件功能”,将其设置为已禁用(不要将其保留为“未配置”)。重新启动。

问题解决了!(CscService 现已停止并阻止以“幽灵模式”运行)。

相关内容