Windows服务无法访问网络共享

时间:2010-09-01 20:55:06

标签: windows-services file-permissions

我的本​​地计算机上运行了一个Windows服务。它被配置为在NT AUTHORITY \ NETWORK SERVICE下运行。该程序访问同一子网中的计算机上的网络共享驱动器。该共享目录将Everyone设置为完全控制。

我在File.Exists上得到False,但文件存在。我确定这是一个许可问题。我忘了什么吗?请注意,具有共享驱动器的计算机不在域中。

3 个答案:

答案 0 :(得分:18)

此处找到解决方案: https://serverfault.com/questions/177139/windows-service-cant-access-network-share

  

具有共享驱动器的计算机不在域上的事实是您的主要问题所在。为了使其工作,您必须将Windows服务配置为以特定用户身份运行,然后您必须使用相同的密码在远程系统上创建相同的用户。它可能会有用。

     

问题源于这样一个事实:为了登录不在域中的计算机,您必须使用该计算机上存在的帐户登录该计算机。该本地机器上肯定不存在其他东西的机器帐户。通过使用相同的密码创建相同的用户,您可以使登录工作。“

-sysadmin1138

我在两台计算机上创建了相同的帐户,并且服务帐户能够访问共享驱动器。将服务器放在同一个域上是一个更好的解决方案,所以我正在努力实现这一点,但这将同时起作用。

答案 1 :(得分:7)

Brian T是对的。但我想补充一点。即使服务在同一个DOMAIN \ User上运行,我们也遇到了这个问题。我们的服务是尝试将文件写入共享文件夹/驱动器,并在config.xml中配置,如下所示: I:/路径/到/与/文件/到/写

但是当我们将配置更改为使用网络的IP地址而不是驱动器号时,我们设法解决了问题。但是语法改变了一点:

\\ XXX.XXX.XX.XX \路径\为\的\文件夹\到\写

希望这有助于任何仍未解决问题的人

答案 2 :(得分:2)

设置共享权限是不够的。还要充分设置NTFS权限,然后它才能正常工作。每个人对共享的完全控制意味着,每个人都可以通过网络到达共享的根目录,但从那时起,NTFS权利被用来确定允许的内容和不允许的内容。