我有一个程序可以压缩文件夹中的文件,然后通过FTP发送它们。 我正在使用Rar.exe(命令行winrar实用程序)来压缩文件。 我正在使用ncftpput.exe(命令行ftp发送实用程序)来发送文件。
该程序运行良好数月,直到最近我决定将其变成Windows服务。 我添加了顶部包含相同程序的服务代码。但是现在我遇到了一个奇怪的问题。
基本上会发生的事情是ncftpput.exe和/或Rar.exe似乎在运行中冻结。我无法在taskmgr中杀死它们(因为它们在系统帐户下 - “访问被拒绝”) Rar.exe使用abotu 50%的CPU使用率,显然仍然是压缩文件,但该文件没有改变大小或被修改了几个小时。 ncftpput.exe正在进行中,但根本没有打开FTP连接。 通常这两个程序都应该继续运行直到完成任务,否则如果遇到问题就退出(如大多数cmd行程序)
有谁能猜出这个程序对服务的影响如何使这种行为发生?
操作系统:Windows XP嵌入式。
语言:C#3.5
感谢
编辑:我使用rar.exe和ncftpput.exe的意图是我可以使用一个可靠的cmd行程序,它可以正常工作,而不必编写更多代码包含在我的程序中。答案 0 :(得分:1)
我已将其修改为仅使用DLL库,而不是外部进程。现在它完美无缺。
所以答案是:不要尝试从服务中启动外部进程! 我不知道为什么,但就是这样。