2010-09-01 152 views
11

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

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

+7

我们在这里并不是没有关于dem stinkin服务器的nuthin。尝试服务器故障。 – 2010-09-01 20:57:49

回答

15

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

事实上,与共享驱动器的机器是不是一个域是你的主要问题是。为了实现这个目标,您必须将Windows服务配置为以特定用户身份运行,然后您必须在远程系统上使用相同的密码创建一个完全相同的用户。那可能会起作用。

问题源于这样的事实:为了登录到不在域中的计算机,必须使用该计算机上存在的帐户登录到该计算机。该机器的其他东西绝对不会存在于本地机器上。所谓具有相同的密码,创建一个相同的用户,你也许能够获取登录的工作。”

-sysadmin1138

我在两台机器上创建相同的账户和服务帐户能够访问共享开车。有在同一个域中的服务器是一个更好的解决方案,所以我正在努力的是,但是这将在平均时间工作。

+0

如果我无法触摸远程服务器,该怎么办?有其他选择吗? – 2016-10-07 02:43:41

2

设置共享权限是不够的。还要充分设置NTFS权限,然后才能正常工作。每个人对共享的完全控制意味着,每个人都可以通过网络获得共享的根源,但从此NTFS权限用于确定什么是允许的以及不允许的。

+0

我在哪里可以更改NTFS权限?在“共享权限”和“安全”选项卡下,我已将“完全控制”设置为“每个人”。 – 2010-09-01 21:06:49

+0

NTFS权限位于安全性选项卡中。在“高级”中注意拒绝权限。它们覆盖给定用户的任何其他权限。如果用户是多个组的成员,则也应用最严格的权限。 ACL权限确实是一件困难的事情。我也很确定那里有什么问题。同时检查权限适用的级别(“此文件夹,子文件夹和文件”)它们也仅在高级选项卡中可见。希望能帮助到你。选项卡有效权限允许您查看用户(最终)拥有哪些权限。 – jdehaan 2010-09-02 04:49:37

5

布赖恩T为正确的。但我想补充一点,我们必须即使该服务在同一个DOMAIN \ User上运行,也会出现此问题。我们的服务正在尝试将文件写入共享文件夹/驱动器,并在c onfig.xml如下所示: I:/ path/to/the/file/to/write。

但是,当我们改变了配置使用网络,而不是驱动器盘符的IP地址,我们设法解决这个问题。但是语法改了一下:

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

希望这有助于人谁仍然没有解决的问题

+0

此解决方案适用于我 – 2014-10-27 20:28:23