Сервис установлен для автоматического запуска после установки, и это ожидается/требуется. Открыто и нажавшая службу установки. Услуга установлен, но поскольку уже существует экземпляр работы SysDemConnect, служба не должна запускать новый экземпляр SysDem Connect.
Код: Выделить всё
protected override void OnStart(string[] args)
{
try
{
Process cmd = new Process();
string filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SysDem.Connect.exe");
cmd.StartInfo.FileName = filename;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
cmd.StartInfo.Arguments = null;
cmd.Start();
processId = cmd.Id;
sessionID = cmd.SessionId;
}
catch (Exception ex)
{
ConnectServiceLogger.WriteToConnectServiceLog(ex.Message);
}
}
< /code>
Я уже пробовал ниже, но похоже, что метод OnStart () не выполняется при перезапуске Windows, все же я вижу, как работает обслуживание. < /p>
protected override void OnStart(string[] args)
{
try
{
Process[] sysdemConnectProcess = Process.GetProcessesByName("SysDem.Connect");
bool isRunning = sysdemConnectProcess.Length > 0;
if (!isRunning)
{
Process cmd = new Process();
string filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SysDem.Connect.exe");
cmd.StartInfo.FileName = filename;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
cmd.StartInfo.Arguments = null;
cmd.Start();
processId = cmd.Id;
sessionID = cmd.SessionId;
}
}
catch (Exception ex)
{
ConnectServiceLogger.WriteToConnectServiceLog(ex.Message);
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... dy-running