.net Windows服务将文件写入网络共享

.net Windows服务将文件写入网络共享,.net,file-io,windows-services,impersonation,.net,File Io,Windows Services,Impersonation,我有一个运行的windows服务,它将文件从关注的文件夹(IO.FileSystemWacher)移动到网络上的UNC共享 网络共享是安全的,但共享对服务用户具有完全控制权;尽管如此,我还是遇到了找不到文件路径的问题 我打算模拟服务(当前)用户,但不确定这样做是否正确 想法?尝试授予运行服务的计算机的计算机帐户对共享的访问权限。 或者,在域帐户下运行服务(显然可以访问共享)首先检查路径是否为您认为的路径 要检查权限,您可以在服务帐户的身份下运行Internet Explorer(执行runas)

我有一个运行的windows服务,它将文件从关注的文件夹(IO.FileSystemWacher)移动到网络上的UNC共享

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

我打算模拟服务(当前)用户,但不确定这样做是否正确


想法?

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

首先检查路径是否为您认为的路径

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

请检查这些:

  • 您的服务用户是域帐户吗?(本地账户不行)
  • 服务用户是否对UNC共享具有NTFS写入权限?(共享级别权限不够,还必须具有NTFS权限)

您如何访问共享?这不是挂载的目录吗?假设\server1\direcotry1被装载到z:\directory1或类似的位置。如果是这样,您必须确保服务用户“看到”装载的目录。或者使用标准UNC路径(使用双
\

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


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

如果您找不到UNC共享的路径,那么您可能只是使用了错误的路径。或者你收到某种拒绝访问的消息。这是一条拒绝访问的消息,指向我收到的域帐户。运行此操作的域帐户没有交互登录权限,但可以访问网络中的特定共享,并且能够在主机上运行应用程序和服务。Tim,如果您仔细阅读此问题,他不会指定FileWatcher正在查看UNC共享。不过,您所谈论的是FileSystemWatcher的一个真正问题。您看到了吗:当我开始这个开发时,我检查的第一件事是我可以观看与filewatcher的UNC共享。已移动监视文件夹中的文件,以便对其进行处理。我可以使用if I connect作为服务帐户映射到驱动器。共享已存在,我似乎无法访问该文件。我没有这些权限。我在一个客户网站上工作,这是我能直接访问的3台机器之一。我可以访问我们的web服务器和数据库实例,但无法访问其他计算机。正在使用标准UNC路径访问共享。您很可能访问NTFS和共享权限不同的内容。是的,现在向供应商基础架构团队提出了一个案例。谢谢