2012-07-30 11 views
7

Mam tabela zadań w mojej db. Chcę odczytać dane z tej tabeli i uruchomić zadania. Który z nich jest lepszy, czy mieć go jako usługę Windows lub działającą aplikację konsolową. Serwer, na którym zostanie uruchomiony, nie zostanie zamknięty. Nie można wyłączyć usługi:Czy dobrze jest mieć usługę Windows lub aplikację konsoli?

Odpowiedz

8

Najprawdopodobniej chcesz skorzystać z usługi Windows.

Korzyści:

  • Można kontrolować użytkownika (oraz prawa związane z tym kontem użytkownika), który rozpoczyna proces
  • Automatycznie rozpoczął proces oznacza pulpit trzeba być na nie zalogowany użytkownik, za usługę uruchomić
  • Polityka w przypadku niepowodzenia można zdefiniować (spróbuj zrestartować n razy uruchomić specjalny program, jeśli nie powiedzie się)
  • zależność można zdefiniować (jeśli są uzależnione od innych sevices)
  • Można owinąć skrypt w niewidzialnym oknie
  • Można łatwo start/stop/restart skrypt (net start <scriptname>)

Cytowane tutaj:What is the benefit of developing the application as a windows service?

+2

Doskonała odpowiedź. Dodam, że w przypadku scenariuszy zaliczek można hostować małą aplikację internetową bezpośrednio w ramach usługi. Umożliwi to zdalną kontrolę lub monitorowanie usługi (po prostu uważaj na implikację bezpieczeństwa). Przykładem tego jest [usługa zarządzania Rabbitmq] (http://www.rabbitmq.com/management.html). Mały wbudowany serwer internetowy umożliwia aminicjatorowi zdalne monitorowanie usługi –

0

Usługa systemu Windows, ponieważ nie wymaga zalogowanego użytkownika.

0

Powiedziałbym; Usługi Windows.

W takim przypadku (między innymi) nie potrzebujesz użytkownika do zalogowania, możesz skonfigurować go w taki sposób, aby automatycznie się ponownie uruchamiał, jeśli z jakiegoś powodu zostanie wyłączony, a Ty (możesz) mieć rozległe prawa system.

0

Obsługa na ogół Windows. Aplikacja Konsola będzie musiała zostać zrestartowana, jeśli serwer uruchomi się ponownie, a usługa Windows uruchomi się automatycznie.

3

Uruchomiona aplikacja konsolowa nie jest opcją, jak stwierdzili inni.

Jeśli chcesz, aby zadanie było uruchamiane co x minut, najprostszym rozwiązaniem jest zaplanowane zadanie przy użyciu aplikacji konsolowej.

Usługa okien ma swoje zalety, ale jest nieco bardziej skomplikowana do wdrożenia i wdrożenia. Jeśli jednak aplikacja musi być zawsze włączona (np. Trzeba reagować na zewnętrzne wyzwalacze, słuchać kolejki wiadomości, ...), jedyną opcją jest usługa Windows. Jak mówili inni, infrastruktura usług zapewnia również więcej możliwości zarządzania, wbudowaną integrację z opcji dziennika zdarzeń, restart i failover ...

+0

Dzięki Jeroenh !!Tak dokładnie to jest mój wymóg, powinienem być w stanie uruchomić zadanie powiedz co x min. .. Czy możesz powiedzieć, jak skomplikowane jest to z usługami? – Juni

+0

http://www.pedautreppe.com/post/How-to-create-(and-deploy)-a-windows-service-in-C-.aspx – jeroenh

+0

Ale jak powiedziałem w mojej odpowiedzi, jeśli po prostu potrzebujesz zadanie uruchamiane co X minut, zaplanowane zadanie jest znacznie łatwiejsze i ma wiele takich samych zalet (może działać bez nadzoru, łatwe wdrażanie, integracja z dziennikiem zdarzeń itp.) – jeroenh

Powiązane problemy