Я создал Windows Сервис, начиная с моего. NET Базового проекта, следующего за this
После этого я правильно установил его на свою рабочую машину и запустил.
Это мой класс обслуживания:
using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Threading.Tasks;
namespace xxx
{
public class WindowsService
{
static void Main(string[] args)
{
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
using (var service = new Service())
{
ServiceBase.Run(service);
}
}
}
internal class Service : ServiceBase
{
public Service()
{
ServiceName = "...";
}
protected override void OnStart(string[] args)
{
try
{
base.OnStart(args);
Task.Run(() => xxxx);
}
catch (Exception ex)
{
EventLog.WriteEntry("Application", ex.ToString(), EventLogEntryType.Error);
}
}
protected override void OnStop()
{
base.OnStop();
}
protected override void OnPause()
{
base.OnPause();
}
}
}
Итак, я скопировал файл и установил его также на сервере. Здесь, когда я пытаюсь запустить его, я получаю:
После этого я начинаю много гуглить ... например, я пытался следующие шаги:
Go для запуска> Выполнить> и введите regedit
Перейдите к: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control
Выбрав управляющую папку, щелкните правой кнопкой мыши на панели справа и - выберите новое значение DWORD
Назовите новый DWORD: ServicesPipeTimeout
Щелкните правой кнопкой мыши ServicesPipeTimeout и выберите команду «Изменить»
. Нажмите «Десятичное число», введите «180000» и нажмите кнопку «ОК»
. Перезагрузите компьютер
Странный момент здесь заключается в том, что голос ServicesPipeTimeout не существует, и я его создал. Сравнивая сервер с моей рабочей машиной, есть и другое значение, которого нет на сервере. Это:
- ServicesPipeTimeout
- OsBootstatPath
Вот скриншот regedit с сервера:
Они актуальны?
Я также пытался переустановить службу, перекомпилировать мои файлы ... как я могу решить эту проблему? Ошибка появляется сразу же, она не перестаёт ждать