C # Windows Service не запускается достаточно быстро - PullRequest
5 голосов
/ 21 апреля 2011

У меня есть служба Windows C #.Метод OnStart() содержит 3 строки, которые все, что они делают, это запускают поток.Сам класс не имеет статических объектов, которые могли бы вызвать задержку.Это так просто, как услуга может быть.Мой код подписан самодельным ключом.

Редактировать: Я только что понял, что сборка не подписана, остальные.Он использует несколько сборок, которые подписаны, но сама служба - нет.

Этот код выполняется внутри виртуальной машины, когда хост работает медленно и эта виртуальная машина загружается, служба не запускаетсяс этой ошибкой:

Истекло время ожидания (30000 миллисекунд) в ожидании подключения службы ServiceName.

Настройка задержки запуска службы исправляет его, но этодолгая задержка и это очень раздражает.У кого-нибудь еще была такая проблема со службами .NET (2.0)?

Метод OnStart:

protected override void OnStart(string[] args)
{
    Thread startThread = new Thread(new ThreadStart(StartThread));
    startThread.IsBackground = true;
    startThread.Start();
}

Метод StartThread, в котором все, что я делаю, это вызывает другой класс, чтобы OnStart не пришлось ждать инициализации статической переменной или конструктораметод до конца.

private void StartThread()
{
    Worker mainThread = new Worker(this);
    mainThread.RunWorker();
}

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 мая 2012

Попробуйте включить AutoLog = false. Я видел, где этот флаг может вызвать время ожидания, которое вы описываете.

0 голосов
/ 21 апреля 2011

Я думаю, что это, скорее всего, из-за строгой подписи вашего исполняемого файла. В общем случае это не рекомендуется делать на исполняемых файлах ( см. Здесь ). Я также столкнулся с той же проблемой в одном из моих проектов, где запуск исполняемого файла занимал невероятное количество времени, и оказалось, что это произошло из-за сильного имени, подписывающего исполняемый файл (также .NET 2.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...