Windows服务在测试时起作用,但不起作用

时间:2010-09-21 20:03:14

标签: c# windows-services filesystemwatcher

我创建了一个使用FileSystemWatcher监视目录的Windows服务,当文件放入文件夹时,它会将其拉链。

所有功能都在我创建的名为FileProcessor的类中。

当我创建一个使用FileProcessor的控制台应用程序时,自动压缩工作效果很好。但是,当我在Windows服务中运行该类时,它永远不会起作用。

3 个答案:

答案 0 :(得分:5)

听起来像文件权限可能会让你失望。该服务运行在哪个帐户?

答案 1 :(得分:3)

检查您的服务运行的帐户和目录 - 它是否具有目标目录的权限和可见性?

为类添加一些诊断,以便您可以查看它正在尝试执行的操作,并输出错误信息(您正在处理FileSystemWatcher下的任何可能的操作系统错误,对吧?)。无论如何,当服务上线时,您将需要这些。比较运行服务与测试时的输出。

在您的班级中添加System.Threading.Thread.Sleep(15000),以便在您的服务调用时,您有时间附加调试器以确定正在进行的操作。

答案 2 :(得分:0)

尝试按照消费者的说法调试您的服务 - 运行服务。将调试点放在代码中的位置以进行检查。在Visual Studio中按Ctrl + Alt + P,这将为您提供附加过程屏幕。

签入 - 在所有用户中显示流程并在所有会话中显示流程 - 复选框。 尝试在 - 可用进程列表中找到您的服务 然后单击“附加”

现在把文件放在文件夹中,调试器会把你带到断点处的VS并尝试调试它,我相信你会发现问题所在。