我开发了一个Windows服务来在目录中编写PDF文件。该服务将文件写入本地驱动器没有问题。但是当它尝试写入网络映射驱动器时,它会失败并将文件写入应用程序目录。
答案 0 :(得分:5)
以下是我在创建相同服务时所获得的一些体验(在网络驱动器上阅读和保存PDF)。我有2个驱动器:第一个不需要身份验证,第二个需要进行身份验证。
映射网络驱动器的常见故障
UNC路径与驱动器号:驱动器号不起作用,您必须使用UNC表示法指定路径。 (例如\\ 10.17.194.1 \ RemoteDir \)
身份验证:如果网络驱动器需要您进行身份验证,我找到的唯一方法是在运行该服务的计算机上创建身份验证用户。如果您需要使用“RemotePassword”进行身份验证作为“RemoteUser”来访问网络驱动器,则应在服务器上创建RemoteUser / RemotePassword帐户,并让该服务以该用户身份运行。
如果您没有访问该目录的权限,您将收到一个异常,告诉您它无法找到目录/文件,或者说它不存在。
服务无法自行建立连接:此外,必须至少从资源管理器中手动访问网络驱动器一次,以便您可以浏览它。我的服务本身无法与网络驱动器建立连接,之前必须在资源管理器中建立连接。
我希望这一点对你有所帮助。
答案 1 :(得分:2)
您需要确保服务正在运行的帐户类型才能访问网络。
“本地系统”用户可能无权访问网络映射驱动器,但可能会写入本地硬盘驱动器。您应该能够将运行该服务的用户设置为具有网络共享权限的用户。
答案 2 :(得分:0)
您是否尝试在网络驱动器上设置写入权限以接受运行该服务的用户?
答案 3 :(得分:0)
我认为默认情况下,Windows服务在LocalService帐户下运行,因此默认情况下,服务不会获得任何特殊权限。也许如果您将服务帐户更改为NetworkService帐户,它将起作用。
答案 4 :(得分:0)
我会检查以下内容:
也许您在调试服务时遇到问题:您可以在其上附加调试器,然后告诉我们您遇到了哪个错误。这将有助于这里的人们帮助你。