我一直在阅读关于FileSystemWatcher的这方面和其他方面,并且仍然无法找到解决方案。FileSystemWatcher在一台服务器上观看另一台服务器上的文件夹
问题: FileSystemWatcher的是一台服务器(prodserver1)上运行,并且在寻找另一台服务器上(prodserver2)的文件夹,并得到以下错误:
“服务无法启动System.ArgumentException:目录名\ prodserver2 \公用\ Synex \ R1010 \无效。 在System.IO.FileSystemWatcher..ctor(字符串路径,字符串过滤器)”
此服务创建多个FileSystemWatchers。 R1010将被替换为R1011,R2121等。所有这些目录都存储在app.config中。这里是我的代码如下所示:
的App.config:
<!-- <add key ="R1010Directory" value="H:\Synex\R1010\" />
<add key ="R2057Directory" value="H:\Synex\R2057\" />
<add key ="R2190Directory" value="H:\Synex\R2190\" /> -->
<add key ="R1010Directory" value="\\prodserver2\Public\Synex\R1010\" />
<add key ="R2057Directory" value="\\prodserver2\Public\Synex\R2057\" />
<add key ="R2190Directory" value="\\prodserver2\Public\Synex\R2190\" />
*请注意,我已经尝试映射一个本地驱动器(H:被映射到prodserver2 \ PUBLIC)。我们尝试了这条路线并得到了同样的错误。在Windows资源管理器中使用它,我们没有任何问题。
服务的OnStart:
FileListener R1010Listener = new FileListener();
R1010Listener.ListenforFile(ConfigurationManager.AppSettings["R1010Directory"], "*", "R1010");
FileListener R2057Listener = new FileListener();
R2057Listener.ListenforFile(ConfigurationManager.AppSettings["R2057Directory"], "*", "R2057");
FileListener R2190Listener = new FileListener();
R2190Listener.ListenforFile(ConfigurationManager.AppSettings["R2190Directory"], "*", "R2190");
FileListener.cs:
FileSystemWatcher fileListener = new FileSystemWatcher(inputFileLoc, fileExtension);
fileListener.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
fileListener.IncludeSubdirectories = false;
fileListener.InternalBufferSize = 65536;
// Add event handlers.
fileListener.Created += new FileSystemEventHandler(OnChanged);
// Begin watching.
fileListener.EnableRaisingEvents = true;
附加信息:
我们已经改变了Windows服务登录到我的帐户我一直在拉这些f老年人和映射本地驱动器。我去服务 - >属性 - >登录选项卡 - >登录为:这个帐户检查,(当我使用我的.net帐户我有权访问被拒绝,当我用我的prod员工id它接受它,但然后我得到无效的目录)浏览并从我们的AD中选择我的员工ID - >应用 - >确定。这一个被接受。当我开始服务时,会收到上述错误。有人告诉我,它仍然是一个权限问题。任何帮助将不胜感激。