Windows 服务无法访问网络共享 [关闭]
Posted
技术标签:
【中文标题】Windows 服务无法访问网络共享 [关闭]【英文标题】:Windows Service can't access network share [closed] 【发布时间】:2011-04-07 00:44:22 【问题描述】:我的本地机器上运行着一个 Windows 服务。它被配置为在 NT AUTHORITY\NETWORK SERVICE 下运行。该程序访问同一子网中计算机上的网络共享驱动器。该共享目录将所有人设置为完全控制。
我在 File.Exists 上得到 False,但该文件存在。我确定这是一个权限问题。我忘记了什么吗?请注意,具有共享驱动器的计算机不在域中。
【问题讨论】:
【参考方案1】:在这里找到了解决方案: https://serverfault.com/questions/177139/windows-service-cant-access-network-share
具有共享驱动器的计算机不在域中这一事实是您的主要问题所在。为了使它工作,您必须将 Windows 服务配置为以特定用户身份运行,然后您必须在远程系统上创建一个具有相同密码的相同用户。那么它可能会起作用。
问题源于这样一个事实,即要登录到不在域中的机器,您必须使用该机器上存在的帐户登录该机器。该机器帐户肯定不会在该本地机器上存在。通过创建具有相同密码的相同用户,您可能能够使登录工作正常。”
-sysadmin1138
我在两台机器上创建了相同的帐户,并且服务帐户能够访问共享驱动器。将服务器放在同一个域中是更好的解决方案,因此我正在努力实现这一目标,但同时这将起作用。
【讨论】:
如果我无法触摸远程服务器怎么办。有其他选择吗?【参考方案2】:Brian T 是正确的。但我想补充一点。即使服务在同一个 DOMAIN\User 上运行,我们也遇到了这个问题。我们的服务试图将文件写入共享文件夹/驱动器,它在 config.xml 中配置如下: 我:/path/to/the/file/to/write.
但是当我们将配置更改为使用网络的 IP 地址而不是驱动器号时,我们设法解决了这个问题。但是语法有点改变:
\\xxx.xxx.xx.xx\path\to\the\folder\to\write
希望这对尚未解决问题的人有所帮助
【讨论】:
这可能是由交互式登录时进行的驱动器号映射引起的。服务可以作为用户进行身份验证,但不能以交互方式登录。这意味着他们不运行登录脚本。【参考方案3】:设置共享权限是不够的。还要充分设置 NTFS 权限,然后它就会工作。每个人都完全控制共享意味着,每个人都可以通过网络到达共享的根目录,但从那时起,NTFS 权限用于确定允许和不允许的内容。
【讨论】:
在哪里可以更改 NTFS 权限?我在“共享权限”和“安全”选项卡下都将“完全控制”设置为“所有人” NTFS 权限位于安全选项卡中。注意“高级”中的拒绝权限。它们覆盖给定用户的任何其他权限。如果用户是多个组的成员,则也适用最严格的权限。 ACL 权限确实是一件困难的事情。我也很确定那里有问题。还要检查权限应用的级别(“此文件夹、子文件夹和文件”)它们也仅在高级选项卡中可见。希望能帮助到你。选项卡有效权限允许您查看用户(最终)拥有哪些权限。以上是关于Windows 服务无法访问网络共享 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章