检查网络驱动器是否已连接为Windows服务[关闭]

问题描述 投票:0回答:1

我正在使用Directory.Exists(<path>)检查网络/映射驱动器当前是否已连接。我正在使用通过阅读系统注册表获得的UNC路径。

如果我通过Visual Studio运行我的代码(它告诉我该目录确实存在),这完全正常,但是,只要我运行与Windows服务完全相同的代码,它就会失败。我检查了服务的用户名和密码,这是正确的 - 一切都检查出来。

我还注意到,作为管理员运行Visual Studio时,作为普通用户运行时返回false,返回true。有没有人知道究竟发生了什么?无论我是从Visual Studio还是作为Windows服务运行,我都试图让我的程序行为相同。

c# networking directory windows-services mapped-drive
1个回答
1
投票

显而易见,您的服务看不到网络驱动器,

  • 您需要在可以查看它的帐户下运行服务,即域用户或明确添加该共享的用户
  • 或者你需要在路径中使用直接IP地址(提供正确的权限设置),即\\xxx.xxx.xx.xx\blah\blah

注意:关于最后一个选项。设置共享权限是不够的。您需要适当地设置NTFS权限

© www.soinside.com 2019 - 2024. All rights reserved.