在FileSystemWatcher上修改网络路径的InternalBufferSize

本文关键字:路径 InternalBufferSize 网络 修改 FileSystemWatcher | 更新日期: 2023-09-27 18:17:41

我在windows服务中有一个FileSystemWatcher,我需要使InternalBufferSize更大。我将其设置为4096的倍数(目前为20 * 4096)。如果我正在监视本地驱动器,我没有任何问题,一切都很好。

如果我将被监视的目录更改为unc路径,我会得到' the parameter is incorrect'错误消息,并且监视程序不会拾取任何更改。

有办法解决这个问题吗?

在FileSystemWatcher上修改网络路径的InternalBufferSize

根据底层非托管函数ReadDirectoryChangesW的文档:

ReadDirectoryChangesWERROR_INVALID_PARAMETER失效缓冲区长度大于64 KB,并且应用程序正在进行监视网络上的目录。这是由于数据包大小的限制与底层文件共享协议。

您的缓冲区是80 KB,超过了这个限制。看看最大值(64 KB)是否符合您的要求。如果没有,您将不得不以其他方式解决它——显然,增加缓冲区大小是不可能的。