У нас есть служба Windows, написанная на C# (.Net3.5). При работе он работает отлично. Однако наши пользователи поддержки сообщают, что, хотя его всегда можно успешно запустить вручную, он не всегда будет автозагружаться при перезагрузке Windows.Почему служба Windows не автозапуск?
Полагаю, что это может быть связано с другими службами (на которых оно зависит), а не с самого начала, но, насколько я вижу, кроме своего собственного входа код службы не зависит ни от чего другого (вкладка свойств службы не содержит зависимостей). Также первой строкой метода OnStart является Thread.Sleep (60000), чтобы все другие службы имели возможность начать. Сервер - это Windows Server 2008 R1, поэтому, по моим расчетам, 60 секунд должно быть более чем достаточно.
Мои вопросы:
- Как я могу иметь четкое представление о его зависимости?
- Есть ли другие известные причины использования сервисов .Net, а не автозапуск?
ТИА
Это может помочь вам в полной мере http://msdn.microsoft.com/en-us/library/ddhy0byf % 28v = VS.90% 29.aspx –
Сон в OnStart - действительно плохая идея - поток, который вызывает OnStart, не принадлежит вам - вы должны начать все с самого начала и выходить из OnStart. Кроме того, вы не увидите ничего в зависимостях службы, если вы * не указали окна о ваших зависимостях. –
Хорошо, возможно, это был плохая консультация (из другого вопроса/ответа на этом форуме). Но откуда я знаю, что такое «зависимости»? Код не имеет доступа к чему-либо другому входу в Sql Server (который может находиться на одном компьютере), и он не требует каких-либо других служб Windows, насколько я могу видеть. –