FileSystemWatcher Windows服务指向同服务器网络文件夹报错“目录名不存在”
Windows服务中FileSystemWatcher访问网络文件夹报错“目录名不存在”的解决思路
当你将FileSystemWatcher托管为Windows服务,指向本地文件夹正常,但配置路径为\\uskansclapd01\\Input时出现“目录名不存在”错误,即便给共享文件夹设置了所有人访问权限仍无法解决,可从以下几个方向排查:
调整服务运行账户:Windows服务默认使用Local System账户,该账户无法访问网络共享资源。需将服务的登录账户更换为具备该网络共享访问权限的域账户或服务器本地账户:
- 打开服务管理器,找到目标服务
- 右键选择「属性」,切换到「登录」选项卡
- 选择「此账户」,输入有权限的账户名及密码,保存后重启服务
双重检查权限设置:共享权限和NTFS权限需同时配置:
- 共享权限:确认已给目标账户(或用户组)分配了读取/写入权限
- NTFS权限:右键共享文件夹→「属性」→「安全」选项卡,添加服务运行账户,赋予其读取、写入(若需监控文件变更)权限
验证共享路径有效性:在服务所在机器的资源管理器中输入
\\uskansclapd01\\Input,确认能正常访问该共享文件夹,排除路径拼写错误或共享未正确发布的问题禁用UAC远程访问限制(针对本地账户):若使用服务器本地账户运行服务,Windows Server的UAC可能限制其远程访问共享,可通过注册表修改解决:
- 打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System - 新建DWORD值
LocalAccountTokenFilterPolicy,设置值为1 - 重启服务或服务器使设置生效
- 打开注册表编辑器,定位到
内容的提问来源于stack exchange,提问作者Kurubaran
相关产品推荐
相关产品推荐

