我有一个WCF WSDualHttpBinding服务。该服务包含在帐户类型为LocalSystem的WindowsService中。
该服务正在尝试访问存储在与该服务相同的网络上的另一台机器上的网络文件,例如, \\dataStoreMachine\\myshare\\fileToOpen.txt
。如果服务正在dataStoreMachine(存储文件的同一台计算机)上运行,则会成功打开该文件。但是,如果服务正在网络中的另一台计算机上运行,则找不到该文件。这是权限问题吗?我已经给了网络共享的读取权限。是否需要在服务绑定中指定某些内容,以便它具有正确的权限?可以从win explorer中运行服务的计算机浏览该文件,因此我知道该文件确实位于它正在查找的位置。
网络上的两台计算机(VMnet)不在特定域上,但具有相同的用户名和空白密码。
答案 0 :(得分:2)
LocalSystem帐户没有任何网络访问权限。假设您的服务器是ActiveDirectory域的一部分,您应该使用网络服务帐户来运行该服务。您需要将共享的读取权限授予指定为服务器的计算机帐户的特定域帐户。这通常类似于:YourDomain \ MachineId123,其中MachineId123是域中的实际机器名。
如果您的服务器不在域中,则可以在相同的本地帐户技术上使用同步密码。如果可能的话,我会避免这种情况,因为在现实世界中,密码更改很容易破坏它。每个服务器都有一个名为File123Shared的本地计算机帐户,并且与其他计算机上的同一帐户具有相同的密码。在将其配置为能够作为服务运行以及可能需要的任何其他权限后,您将使用该本地帐户运行服务。