2

我有一个正在运行的 Windows 服务,它将文件从监视文件夹 (IO.FileSystemWacher) 移动到网络上的 UNC 共享。

网络共享是安全的,但共享对服务用户具有完全控制权;尽管如此,我还是遇到了找不到文件路径的问题。

我打算冒充服务(当前)用户,但不确定这是否是正确的方法。

想法?

4

5 回答 5

2

首先检查路径是你认为的。

要检查权限,您可以在服务帐户的身份下运行 Internet Explorer (do runas),然后将路径放在 URL 框中,以检查服务帐户是否可以访问该路径。

于 2009-05-20T11:50:37.387 回答
2

检查这些:

  • 您的服务用户是域帐户吗?(本地账户不行)
  • 服务用户是否对 UNC 共享具有 NTFS 写入权限?(共享级权限还不够,还必须有NTFS权限)
于 2009-05-20T11:54:18.177 回答
0

尝试授予运行该服务的计算机的计算机帐户对共享的访问权限。或者,在域帐户下运行服务(显然可以访问共享)

于 2009-05-20T11:50:28.857 回答
0

您如何访问共享?不是挂载目录吗?所以让我们说 \server1\direcotry1 安装到 z:\directory1 或类似的东西。如果是这样,您必须确保服务用户“看到”已安装的目录。或者使用标准 UNC 路径(使用 double \)。

于 2009-05-20T12:01:33.030 回答
0

FileSystemWatcher 是否总是无法连接到 UNC 共享,还是在 watcher 运行后发生?

我已经看到,如果您重新启动监视文件夹所在的计算机,则在另一台计算机上运行的 FileSystemWatcher 将不再看到更改事件。要解决此问题,您需要重新启动观察程序。我相信您可以使用 EnableRaisingEvents 属性来执行此操作。

于 2009-05-20T12:01:58.067 回答