2011-05-26 64 views
2

我有一个WCF WSDualHttpBinding服务。该服务包含在帐户类型为LocalSystem的WindowsService中。无法在WCF服务中打开网络文件

该服务正尝试访问存储在与该服务相同的网络上的另一台机器上的网络文件,例如, \\dataStoreMachine\\myshare\\fileToOpen.txt。如果服务在dataStoreMachine(与存储文件的机器相同)上运行,则文件将成功打开。但是,如果该服务正在网络中的另一台计算机上运行,​​则找不到该文件。这是一个权限问题?我已经授予网络共享的读取权限。有什么需要在服务绑定中指定,所以它有正确的权利?该文件可以从win explorer中运行该服务的机器浏览,所以我知道该文件确实处于它正在查看的位置。

网络上的两台计算机(VMnet)都不在特定域中,但具有相同的用户名和空密码。

回答

2

LocalSystem帐户没有任何网络访问权限。假设您的服务器是ActiveDirectory域的一部分,您应该使用网络服务帐户来运行该服务。您需要将共享的读取权限授予分配为服务器计算机帐户的特定域帐户。这通常类似于:YourDomain \ MachineId123其中MachineId123是域中的实际计算机名称。

如果您的服务器不在域中,那么您可以在相同的本地帐户技术上使用同步密码。如果可能的话,我会避免这种情况,因为在现实世界中,它很容易被密码更改破坏。每台服务器都会有一个本地机器帐户,名称与File123Shared类似,并且与其他机器上的帐户具有相同的密码。在将其配置为能够作为服务运行以及可能需要的任何其他权限之后,您将使用该本地帐户运行服务。