有用的目录观察服务 - 为什么它不起作用?

时间:2009-08-12 22:41:11

标签: c# windows-services

ServerFault建议我在这里问。我需要一个目录监视器来触发命令行FTP客户端将一些文件上传到服务器。我不关心整天保持与服务器连接的想法,所以我需要一个目录观察器。这看起来很完美,我已经尝试了所有可能的事情。但是我已经达到了我的知识极限,这显然非常简单。如果有人感兴趣,会指出我的错误吗?

我找到了这个有用的目录观察服务through google,但我无法让它为我工作。我尽量避免寻求像这样的低技能的帮助,但我已经用尽了我的知识,我不知道任何C#所以我无法解决代码问题。日志文件说服务启动,进入运行模式,然后停止,但是当我将文件移动到监视文件夹时没有任何反应。

如果您发现代码有趣或有用,您会尝试并告诉我哪些有用吗?

FWIW,这是我正在使用的配置文件:(但无法让它出现)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <configSections>
      <section name="watchInformation" type="DirectoryWatcher.WatchInformation, DirectoryWatcher"/>
   </configSections>
   <appSettings>     
         <add key="maxConcurrentProcesses" value="1"/>  
   </appSettings>
   <watchInformation>
      <directoriesToWatch>  
            <directoryToWatch path="C:\ftp_folder">
               <fileSetsToWatch>
                  <fileSetToWatch>
                     <eventsToWatch>
                        <eventToWatch type="All"/>
                     </eventsToWatch>
                     <programsToExecute>
                        <programToExecute path="cmd.exe" arguments="/C" />
                     </programsToExecute>
                  </fileSetToWatch>
               </fileSetsToWatch>     
            </directoryToWatch>
      </directoriesToWatch>
   </watchInformation>
</configuration>

2 个答案:

答案 0 :(得分:0)

您的程序可能无法找到cmd.exe

尝试完全指定路径...通常是C:\Windows\System32\cmd.exe

答案 1 :(得分:0)

该程序运行的是什么ID?它是哪个组成员?它可能没有运行cmd.exe的权限 - 过去,我必须在服务器上向cmd.exe添加安全组,以允许低权限帐户运行它。