Всем привет!
Есть следующая проблема:
После добавление объекта PerformanceCounter в функцию Main в созданный .NET windows service, сервис стартует только один раз.
Во время второго запуска выдается ошибка:
Error 1053: The service did not respond to the start or control request in a timely fashion.
После этого сообщения, сервис может быть запущен опять только один раз. Ошибка просходит в .NET 2.0, 3.0, 3.5
Вот код Main:
static void Main()
{
PerformanceCounter counter = new PerformanceCounter("Process","Creating Process ID",Process.GetCurrentProcess().ProcessName);
ServiceBase.Run(new WindowsService());
}
Есть ли какие нибудь идеи, почему так происходит.
Заранее благодарен,
Дмитрий Глебенок.
Здравствуйте, Дмитрий Глебенок, Вы писали:
ДГ>После добавление объекта PerformanceCounter в функцию Main в созданный .NET windows service, сервис стартует только один раз.
ДГ>Во время второго запуска выдается ошибка:
ДГ>Error 1053: The service did not respond to the start or control request in a timely fashion.
ДГ>ДГ>static void Main()
ДГ>{
ДГ> PerformanceCounter counter = new PerformanceCounter("Process","Creating Process ID",Process.GetCurrentProcess().ProcessName);
ДГ> ServiceBase.Run(new WindowsService());
ДГ>}
ДГ>
ДГ>Есть ли какие нибудь идеи, почему так происходит.
Преположение — после работы вызывай counter.Dispose() или пиши
using (PerformanceCounter counter = new PerformanceCounter("Process", "Creating Process ID", Process.GetCurrentProcess().ProcessName))
{
}
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Здравствуйте, dushchak, Вы писали:
Спасибо за ответ, но так тоже не работает!
D>Здравствуйте, Дмитрий Глебенок, Вы писали:
ДГ>>После добавление объекта PerformanceCounter в функцию Main в созданный .NET windows service, сервис стартует только один раз.
ДГ>>Во время второго запуска выдается ошибка:
ДГ>>Error 1053: The service did not respond to the start or control request in a timely fashion.
ДГ>>ДГ>>static void Main()
ДГ>>{
ДГ>> PerformanceCounter counter = new PerformanceCounter("Process","Creating Process ID",Process.GetCurrentProcess().ProcessName);
ДГ>> ServiceBase.Run(new WindowsService());
ДГ>>}
ДГ>>
ДГ>>Есть ли какие нибудь идеи, почему так происходит.
D>Преположение — после работы вызывай counter.Dispose() или пиши
D>D>using (PerformanceCounter counter = new PerformanceCounter("Process", "Creating Process ID", Process.GetCurrentProcess().ProcessName))
D>{
D>}
D>
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, dushchak, Вы писали:
А>Спасибо за ответ, но так тоже не работает!
D>>Здравствуйте, Дмитрий Глебенок, Вы писали:
ДГ>>>После добавление объекта PerformanceCounter в функцию Main в созданный .NET windows service, сервис стартует только один раз.
ДГ>>>Во время второго запуска выдается ошибка:
ДГ>>>Error 1053: The service did not respond to the start or control request in a timely fashion.
ДГ>>>ДГ>>>static void Main()
ДГ>>>{
ДГ>>> PerformanceCounter counter = new PerformanceCounter("Process","Creating Process ID",Process.GetCurrentProcess().ProcessName);
ДГ>>> ServiceBase.Run(new WindowsService());
ДГ>>>}
ДГ>>>
ДГ>>>Есть ли какие нибудь идеи, почему так происходит.
D>>Преположение — после работы вызывай counter.Dispose() или пиши
D>>D>>using (PerformanceCounter counter = new PerformanceCounter("Process", "Creating Process ID", Process.GetCurrentProcess().ProcessName))
D>>{
D>>}
D>>
Перенесите этот код в отдельный поток. А потоку входящему Main дайте выйти из него.