【发布时间】:2011-06-04 04:35:12
【问题描述】:
我编写了一个 Windows 服务,它定期执行一个 SSIS 包,将文档从 Server A 移动到 Server B。
问题在于,为了做到这一点,我需要使用无限循环,它在服务启动时启动。
当然,我将这个循环放入OnStart() 方法中。不幸的是,服务从来没有发出它已经启动的信号,因为它永远不会到达这个方法的结尾......
以下是相关代码:
protected override void OnStart(string[] args)
{
Application app = new Application();
Package pkg = app.LoadFromDtsServer(@"MSDB\PullDoc", "Server", null);
while (true)
{
DTSExecResult pkgResults = pkg.Execute();//Execute the package.
EventLog.WriteEntry(pkgResults.ToString());
Thread.Sleep(1000 * 60 * 5);//Sleep at least five minutes.
}
}
我想这是一个常见问题,因为大多数服务应该无限期地运行。
关于如何让这个服务返回它已经启动的任何想法?
谢谢!
【问题讨论】:
标签: windows-services