首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSystemWatcher查看UNC路径

FileSystemWatcher查看UNC路径
EN

Stack Overflow用户
提问于 2012-06-27 04:24:10
回答 5查看 41.8K关注 0票数 26

关于这个话题,问题不在少数,但我仍然有困难。这是我的情况。我有一个服务,我需要监视配置文件中指定的路径。当我使用本地驱动器时,效果很好。

但是,当我将其更改为类似于\\server2\secondary\temp\watch_folder的内容时,服务不会启动。日志中的错误是

目录名\server2\secondary\temp\watch_folder无效。

如果我直接将其复制到Windows资源管理器中,文件夹就会很好地打开。如果我把我的代码粘贴到一个旧的Winforms应用程序中,它就能正常工作。我试过所有的“登录为”帐户。我将其设置为使用管理员帐户,但仍然没有骰子。

这是我的代码:

代码语言:javascript
复制
_watcher = new FileSystemWatcher();
_watcher.Path = ConfigurationManager.AppSettings["WatchFolder"];
_watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
_watcher.Filter = "*.txt";
_watcher.Created += new FileSystemEventHandler(OnCreated);
_watcher.Error += new ErrorEventHandler(OnError);
_watcher.EnableRaisingEvents = true;

有什么想法吗?我不知所措,在这一点上,我想我已经盯着它太久了。我衷心感谢任何帮助。

谢谢,尼克

编辑在这里是一个例外:

服务无法启动。System.ArgumentException:目录名\server2\Secondary\temp\watch_folder无效。 在System.IO.FileSystemWatcher.set_Path(字符串值) 在FileWatcher.FileWatcher.Watch() 在FileWatcher.FileWatcher.OnStart(String[] args) 在System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object州)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-27 16:53:58

我刚试过这个:

代码语言:javascript
复制
var _watcher = new FileSystemWatcher();
_watcher.Path = @"\\10.31.2.221\shared\";
_watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
_watcher.Filter = "*.txt";
_watcher.Created += new FileSystemEventHandler((x, y) =>Console.WriteLine("Created"));
_watcher.Error += new ErrorEventHandler( (x, y) =>Console.WriteLine("Error"));
_watcher.EnableRaisingEvents = true;
Console.ReadKey();

这是没有问题的,但是我在以下情况下复制了您的异常:

  • 正在运行的用户没有读取远程文件夹的权限。
  • 远程文件夹不存在。

您的问题肯定与权限有关,我认为正在运行的用户没有所需的权限。

您可以尝试的另一件事是将远程文件夹映射到一个本地文件夹。

在cmd中执行此操作:

代码语言:javascript
复制
NET USE Z: \\server2\Secondary\temp\watch_folder /user:Domain\UserName Password

然后在您的代码中:

代码语言:javascript
复制
_watcher.Path = @"Z:\";
票数 24
EN

Stack Overflow用户

发布于 2012-06-27 13:39:06

您的服务可能运行在没有该共享权限的用户帐户下。尝试将windows服务更改为在不同凭据下运行。

票数 6
EN

Stack Overflow用户

发布于 2013-12-03 14:37:19

我找到了一种非常酷的方法,可以让UNC在codeproject上的windows服务中使用凭据。

见禤浩焯海斯帖子:http://www.codeproject.com/Articles/43091/Connect-to-a-UNC-Path-with-Credentials

他的解决办法很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11219373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档