2013-01-24 18 views
11

Rozwijam jedną aplikację okienną i tworzę jedną usługę. I uruchomić usługę przy użyciu kodowania w oknie aplikacji, ale otrzymuję błąd jak nie można otworzyć okna usługi na komputerze '.'nie można otworzyć usługi okna na komputerze "." w aplikacji okna

użyłem poniżej kodu.

ServiceController controller = new ServiceController("SeoMozScheduleService"); 

if (controller.Status == ServiceControllerStatus.Stopped) 
{ 
    controller.Start(); 
} 

Gdybym prawym przyciskiem myszy na aplikacji i kliknij polecenie Uruchom jako administrator niż to działa dobrze dla mnie ...

+1

Pomoże Ci, jeśli opublikujesz aktualną wiadomość, a nie błąd "podobny" do wiadomości. "." może czasem być używany do oznaczenia lokalnej maszyny. –

+1

Co to jest * aktualny * komunikat o błędzie? –

+0

Czy możesz normalnie uruchomić usługę? – PhoenixReborn

Odpowiedz

9

idź do C: // Program Files/ApplicationFolder/.exe Kliknij prawym przyciskiem .exe i przejdź do Właściwości, a następnie przejdź do zakładki Compability i sprawdź prawidłowość, aby uruchomić ten Program jako poziom administratora.

+8

Nie mam wystarczającej reputacji, aby to zignorować, więc po prostu skomentuję tutaj i powiem, że uprawnienia do podnoszenia są nigdy nie jest właściwym rozwiązaniem, ponieważ Twoi użytkownicy mogą nie mieć uprawnień administratora. – Tsury

+1

Uruchamiam go w konsoli jako administrator, a także jako usługi administratora ... i usługa została zainstalowana, ale nie została uruchomiona, dopóki nie ustawię tej właściwości. wow, to jest ulga! dzięki! – Jaider

+0

Zgadzam się z Jaiderem. Istnieje wiele sytuacji na serwerze, w których użytkownicy nie są zaangażowani, ale automatyczne zadania są uruchamiane pod jednym użytkownikiem.To część piękna stackoverflow - wiele odpowiedzi, z których jedna może najlepiej działać w twoim środowisku. – Jeff

3

jeśli używasz visual studio następnie je zamknąć i ponownie otwarty Sudio wizualny z metę jako administrator

15

Aby to automatyczny przy każdym otwarciu aplikacji trzeba add a manifest file do rozwiązania, a następnie zaktualizować węzeł requestedExecutionLevel wewnątrz pliku wyglądać następująco:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
</requestedPrivileges> 

jednak zmiana tego ustawienia spowoduje systemu monitem za każdym razem, aby uruchomić aplikację jako administrator jeśli UAC jest włączony.

+1

To nie działa dla mnie. Uruchomienie programu Visual Studio lub pliku wykonywalnego jako administrator rozwiązało problem. –

0

Zmiana wersji ramowej pliku app.conf do wersji zainstalowanej w systemie rozwiązała problem.

1

Wpadłem na to z zaplanowanym zadaniem na serwerze - sprawdzenie, czy "Uruchom z najwyższymi uprawnieniami" rozwiązało problem. (Konto usługi musi oczywiście mieć uprawnienia administratora, aby to działało.)

1

Żadne z tych rozwiązań nie pomogło mi, ponieważ pomogłoby, gdybym rzeczywiście upewnił się, że najpierw mam dostęp administratora do komputera docelowego! Odebrałem i oddałem Administratorowi dostęp do mojego głównego konta za pomocą mojego konta administratora domeny. Kiedy uruchomiłem jakiś kod ServiceController, który sprawdzał, czy usługa była uruchomiona na komputerze zdalnym, na koncie administratora domeny, wszystko było w porządku. Kiedy zrobiłem to jako moje główne konto, wtedy to nie działało - nawet jeśli uruchomiłem Visual Studio jako administrator. Okazuje się, że testowałem bez mojego głównego konta w lokalnej grupie Admin ... d'oh!

Powiązane problemy