Я написал службу 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.
}
}
Я мог бы представить, что этоРаспространенная проблема, учитывая, что большинство служб должны работать неопределенно долго.
Есть какие-нибудь идеи о том, как заставить эту службу вернуть ее запущенную?
Спасибо!