Windows服务

时间:2009-06-30 11:18:49

标签: windows windows-services

我开发了一个Windows服务来在目录中编写PDF文件。该服务将文件写入本地驱动器没有问题。但是当它尝试写入网络映射驱动器时,它会失败并将文件写入应用程序目录。

5 个答案:

答案 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)

我会检查以下内容:

  1. 您的程序在不作为服务运行时是否有效?
  2. 你确定没有像错误框那样的GUI元素(愚蠢的问题可能;-))?
  3. 您是否正在使用.NET编写服务?如果是,动态权利(CAS)可能存在问题
  4. 也许您在调试服务时遇到问题:您可以在其上附加调试器,然后告诉我们您遇到了哪个错误。这将有助于这里的人们帮助你。

    CAS