FileSystemWatcher无法访问网络驱动器

Man*_*ani 6 c# windows-services filesystemwatcher

我试图使用Windows服务在某些服务器路径上运行文件观察程序.我正在使用我的Windows登录凭证来运行该服务,并且能够从我的登录中访问此"someServerPath".但是,当我从FileSystemWatcher那样做时,它抛出:

目录名\ someServerPath无效"异常.

var fileWatcher = new FileSystemWatcher(GetServerPath()) 
    {
        NotifyFilter=(NotifyFilters.LastWrite|NotifyFilters.FileName),
        EnableRaisingEvents=true,
        IncludeSubdirectories=true
    };

public static string GetServerPath() 
{
    return string.Format(@"\\{0}", FileServer1);              
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我这个吗?

Lan*_*ney 9

我有项目使用FileSystemWatcher对象监视UNC路径没有任何问题.

我从你的代码示例中猜测可能是你将观察者指向服务器的根共享(// servername /),这可能不是有效的文件系统共享?我知道它会在Windows资源管理器中返回打印机,计划任务等内容.

尝试将观察者指向根目录下的共享 - 如果您在服务器上拥有远程管理权限,那么// servername/c $ /将是一个很好的测试示例.


Joh*_*don 5

关于更新的问题,我同意您可能需要指定有效的共享,而不仅仅是远程服务器名称.

[更新]修复了之前关于异常的问题:

将名称指定为 @"\\someServerPath"

\ \作为一个单一的\逃脱

使用@符号为字符串添加前缀时,它不会处理转义序列.