【发布时间】:2014-05-24 06:36:14
【问题描述】:
我正在创建我的第一个 Windows 服务,它编译并且安装过程成功,我可以启动它,但它似乎没有执行我编程它执行的任何任务。以下是我的主要课程:
public partial class Service : ServiceBase
{
private Timer timer = new Timer(1000);
public Service()
{
this.InitializeComponent();
}
protected override void OnStart(string[] args)
{
using (StreamWriter streamWriter = new StreamWriter("file.txt", true))
{
streamWriter.WriteLine("Service");
}
this.timer.Elapsed += OnTimedEvent;
this.timer.Start();
}
private static void OnTimedEvent(object sender, ElapsedEventArgs e)
{
using (StreamWriter streamWriter = new StreamWriter("file.txt", true))
{
streamWriter.WriteLine("OnTimedEvent");
}
}
}
可能出了什么问题?
【问题讨论】:
-
调试的时候有没有异常?
-
好的,这只是我对您问题的看法。您启动它,但在服务文件夹中看不到
file.txt,因此您决定它不起作用。但是默认工作目录是%WinDir%\System32,那是你的文件所在 -
(刚刚测试,在 x64 上它写入 SYSWOW64)
-
为什么默认工作目录与可执行文件所在的目录不同?
-
我知道这与您的问题无关,但如果我可以提出建议,请使用 Topshelf 来创建您的服务。不需要安装程序包,它使调试变得更容易(就像控制台程序一样,因为这基本上就是你使用 Topshelf 时的样子)topshelf-project.com
标签: c# visual-studio windows-services