Mam problem z aplikacją, którą tworzę. Próbuję uruchomić usługę systemu Windows za pośrednictwem mojej aplikacji C#. Kiedy klikam przycisk Start, wygląda na to, że wszystko przechodzi, ale kiedy loguję się do serwera, usługa nadal nie pokazuje, że jest uruchomiona. Jednak po drugim uruchomieniu go otrzymuję wyjątek, który mówi, że wystąpienie usługi jest już uruchomione. Znów, kiedy loguję się do serwera, usługa wydaje się być zatrzymana. Czy ktokolwiek to widział?C# uruchom program Windows automatycznie programowo
Oto mój kod.
try
{
while (reader.Read())
{
int timeoutMilliseconds = 1000;
string serviceName = reader["ServiceName"].ToString();
string permission = reader["Permission"].ToString();
if (permission == "E")
{
lblServStartSuccess.Visible = true;
ServiceController service = new ServiceController(serviceName);
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
else
{
lblServErrorStart.Visible = true;
}
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
EDIT: Oto wyjątek dostałam na jednej usługi:
System.InvalidOperationException: obsługa Logical Disk Manager usługi administracyjne nie zostało znalezione na komputerze ''. ---> System.ComponentModel.Win32Exception: Określona usługa nie istnieje jako usługa zainstalowana --- Koniec wewnętrznego śledzenia stosu wyjątków ---
Wiem, że usługa istnieje. Czy muszę dodać coś przed usługą, aby powiedzieć, na jaki serwer się patrzy?
Czy jesteś pewien, że usługa nie utknęła w stanie początkowym? Pamiętam, że panel kontrolny usług nie był genialny jeśli chodzi o pokazywanie tego (przynajmniej niektóre wersje systemu Windows temu) – Rup
co masz na myśli mówiąc "kiedy loguję się do serwera" - czy próbujesz użyć SCM na innej maszynie? – BrokenGlass
Tak Uruchomiłem usługę internetową ze zdalnego serwera. Używam konta z dostępem administratora. Nie jestem pewien, czy utknął. Czy mój limit czasu może być zbyt krótki i upłynął limit czasu? – Matt