c# - Windows 服务无法访问网络位置 (UNC) 路径
问题描述
我有一个 Windows 服务,它不断轮询文件夹中的新文件。对于本地目录,这工作正常。但是当涉及到同一网络中另一个系统上的 UNC 路径时,该服务似乎无法访问该文件夹。我已经参考了这个发布https://serverfault.com/a/881272;它声明我需要以当前登录的用户身份运行服务。我应该怎么做?
我希望使用该服务监控的路径是
\DESKTOP-PC\Users\me\myfolder
请指教
更新:
我使用 topshelf 开发了该服务。我想轮询同一网络中另一台本地计算机上的文件夹。我去网络地方,双击计算机名,它要求提供凭据,我输入远程计算机的用户名和密码我可以访问该用户系统上的文件(在资源管理器中)。
现在,当我将服务设置为在本机下以本地计算机用户身份运行时,它无法访问可使用资源管理器访问的远程 UNC 路径。我尝试将其安装为远程计算机用户,但失败了。
myService.exe install -username:DESKTOP-REMOTE\myname -password:mypassword
解决方案
如果您尝试在该desktop-remote\myname
帐户下运行您的服务,您可能会失败。本地机器只喜欢属于自己的帐户。
我要做的就是扭转局面。使远程计算机共享一个文件夹以供您的计算机轮询。这样远程机器就可以控制它发布的数据,就像一个对象的属性是private
or一样public
。如果您可以让知道地址的任何人\\desktop-remote\my-not-so-secret-folder\
都可以阅读它,请将其设置为任何人都可以阅读。如果您比较隐秘,请在文件夹后面加上 $ 后缀,如下所示:\\desktop-remote\my-secret-folder$
。现在它不可见但仍然可以访问。
您还可以创建一个有权访问所述文件夹的特殊帐户。
然后,您让您的服务在本地计算机上运行您选择的任何帐户(具有网络访问权限)。让它尝试使用特殊帐户连接到远程文件夹。
(我以艰难的方式了解到,读取共享文件夹在没有域的机器和域中的机器之间略有不同;任何人都可以读取的方法不起作用。至少在 WindowsXP 中是这样的。从那时起我就有了不需要共享文件夹。)
高温高压
推荐阅读
- r - R Shiny 应用程序全局变量
- version-control - 小部件按钮。改变不会发生
- docker - 如何在 Ansible 剧本中转义 JSON
- mysql - 提取具有超过阈值的连续模式的行
- unity3d - 一般来说,什么会导致 Unity 编辑器冻结并且没有响应?
- amazon-web-services - 是否可以在 Spark 集群之上构建 REST API 接口?
- r - 在 Shiny App 中增加条带/条带的大小
- python-3.x - 在 Pandas 中按 2 列分组忽略顺序
- mysql - 如何在 acore_world DB 中查找法术数据
- jquery - JQuery ajax - 如何传递具有空值的数组参数