我创建了一个使用FileSystemWatcher监视目录的Windows服务,当文件放入文件夹时,它会将其拉链。
所有功能都在我创建的名为FileProcessor的类中。
当我创建一个使用FileProcessor的控制台应用程序时,自动压缩工作效果很好。但是,当我在Windows服务中运行该类时,它永远不会起作用。
答案 0 :(得分:5)
听起来像文件权限可能会让你失望。该服务运行在哪个帐户?
答案 1 :(得分:3)
检查您的服务运行的帐户和目录 - 它是否具有目标目录的权限和可见性?
为类添加一些诊断,以便您可以查看它正在尝试执行的操作,并输出错误信息(您正在处理FileSystemWatcher
下的任何可能的操作系统错误,对吧?)。无论如何,当服务上线时,您将需要这些。比较运行服务与测试时的输出。
在您的班级中添加System.Threading.Thread.Sleep(15000)
,以便在您的服务调用时,您有时间附加调试器以确定正在进行的操作。
答案 2 :(得分:0)
尝试按照消费者的说法调试您的服务 - 运行服务。将调试点放在代码中的位置以进行检查。在Visual Studio中按Ctrl + Alt + P,这将为您提供附加过程屏幕。
签入 - 在所有用户中显示流程并在所有会话中显示流程 - 复选框。 尝试在 - 可用进程列表中找到您的服务 然后单击“附加”
现在把文件放在文件夹中,调试器会把你带到断点处的VS并尝试调试它,我相信你会发现问题所在。