Wielokrotna Instalacja Windows Service

0

Witam

Mam taki problem, że potrzebuję, aby dany program został zainstalowany jako usługa z tym, że dany program musi być zainstalowany i uruchomiony w np. 10 kopiach, czyli np: mam program o nazwie "Program.exe" i instaluję go w usługach pod nazwami "Program1, Program2,..., Program10". Moim celem jest to, żeby dany program uruchomił się 10 razy jako osobne procesy. O ile zainstalowanie poprzez instalutill jednej usługi nie stanowi problemu to już kilku owszem - przynajmniej dla mnie ;)

Proszę o pomoc bo już się trochę naszukałem i nie znalazłem satysfakcjonującej odpowiedzi :(

Pozdrawiam
Artur0404

0

Trochę kłóci się to z ideą usług. Ale obejściem (z ang. workaround, bardzo lubiane słowo przez pseudotechniczy personel zarządzający) jest kompilacja tegoż programu 10 razy z np. inną wersją. Bo installutil przyjmuje assemblyName, czyli: "Parametr zestawu będzie interpretowany jako nazwa zestawu (Name, Locale, PublicKeyToken, Version). Domyślnie parametr zestawu interpretowany jest jako nazwa pliku zestawu na dysku.". Więc obstawiam że zmiana jednego z tych parametrów, umożliwi ponowną instalację. Oczywiście w tym momencie nie będzie to jeden plik exe, tylko 10.

0

Być może nie potrzebuję instalować 10 usług, a wystarczy jedna. Mi zależy na tym żeby dany program uruchomić jako 10 różnych procesów. I generowanie 10 plików exe jest rozwiązaniem ale nie takim jakiego szukam, nie mogę do każdej instalacji u klienta przygotowywać różnych kompilacji.
Jeżeli ktoś ma pomysł jak zrobić żebym mógł uruchomić proces jako usługę, ale wielokrotnie i bez tworzenia dodatkowych plików exe dla każdej usługi to takiego rozwiązania szukam.

0

A ja się zastanawiam jaki jest rzeczywisty sens czegoś takiego. Bo wydaje mi się, że ktoś tu próbuje użyć usługi nie do tego, do czego one służą.

0
somekind napisał(a)

A ja się zastanawiam jaki jest rzeczywisty sens czegoś takiego. Bo wydaje mi się, że ktoś tu próbuje użyć usługi nie do tego, do czego one służą.

Być może potrzebuję jedynie jednej usługi, przy tym się nie upieram, ale program musi być zainstalowany jako usługa (chociaż raz) i musi pozwalać na uruchomienie wielokrotne.

0

Wracam z pytaniem: po co?
Mi też wydaje się że chcesz źle użyć usługi. Jak opiszesz rzeczywistą potrzebę to powiemy ci jak sensownie to zrealizować.

0

Moją rzeczywistą potrzebą jest uruchomienie kilku procesów tego samego programu. Chodzi o to żeby każdy proces posiadał swoją konfigurację i realizował te same funkcje co pozostałe procesy ale dla różnych obiektów. I musi to się opierać o usługę, niekoniecznie wiele, ale przynajmniej jedną.

0

Jedna usługa, jeden exe. Usługa uruchamia 10 (n) wątków, każdy z odpowiednim identyfikatorem, na podstawie którego pobiera konfigurację. Z jednego czy wielu plików, to już twoja inwencja, ale wg mnie wystarczy jeden plik

<threadsConfig>
  <config name="foo1">
    ...
  </config>
  <config name="foo2">
    ...
  </config>
</threadsConfig>

Logikę wykonuje jakaś klasa czy zestaw klas, żeby wykonać to ponownie wystarczy kolejna jej instancja (klasy), a nie kolejny exe. Jeśli tak masz to kiepsko napisałeś program.

0
massther napisał(a)

Jedna usługa, jeden exe. Usługa uruchamia 10 (n) wątków, każdy z odpowiednim identyfikatorem, na podstawie którego pobiera konfigurację. Z jednego czy wielu plików, to już twoja inwencja, ale wg mnie wystarczy jeden plik

<threadsConfig>
  <config name="foo1">
    ...
  </config>
  <config name="foo2">
    ...
  </config>
</threadsConfig>

Logikę wykonuje jakaś klasa czy zestaw klas, żeby wykonać to ponownie wystarczy kolejna jej instancja (klasy), a nie kolejny exe. Jeśli tak masz to kiepsko napisałeś program.

Chodzi o to, żeby jeden proces posiadał większe zasoby systemowe potrzebne do poprawnej pracy. Wiele wątków w jednym procesie to jednak nie to samo co wiele wątków w wielu procesach, prawda?

0

Niby tak, ale co znaczy że proces ma posiadać większe zasoby? Przydziałem CPU rządzi system na podstawie priorytetu wątku. Pamięcią zarządza framework do maksymalnej granicy.
Oczywiście jeśli nieprawidłowo oprogramujesz zabawy z wątkami to wyjdzie kupa.
Możesz też z usługi odpalać inne procesy, ale to trochę nieładne rozwiązanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1