Я написал службу Windows на С#, которая преобразует wav файлы в mp3, а затем сохраняет их на удаленном сервере. На моей платформе разработки (ОС: WinXP SP3) служба запускается нормально и работает так, как она должна была.
Когда я установил его на производственный компьютер (ОС: WinServer 2000), после запуска службы он не запускается своевременно и остается в постоянном статусе "Запуск". Программа явно работает, поскольку файлы конвертируются и передаются.
Моя догадка заключается в том, что проблема заключается в компоненте таймера, я думаю, что на машине Windows 2000 Server таймер может заставить систему регистрировать программу как "Запуск".
Есть ли что-то, что мне не хватает в Windows Server 2000?
Я не знаком с написанием служб в .NET, но в целом поток, который используется для запуска службы и сообщает о ее первоначальном статусе, не должен быть тем же самым потоком, который выполняет фактическую работу. Служба должна порождать рабочий поток, чтобы точка входа могла быстро вернуть статус в SCM.