2009-08-05 12 views

Odpowiedz

3
+0

Czy można użyć tego do ustawienia nazwy użytkownika i hasła w czasie wykonywania (zamiast kompilacji)? Czy nie musiałbyś mieć dostępu do instalatorów, które są już skompilowane do pliku wykonywalnego usługi? Prawdopodobnie będę musiał przejść na trasę WMI. –

+0

Twoja usługa może mieć własną klasę instalatora, która dziedziczy po "System.Configuration.Install.Installer". Używamy tej odziedziczonej klasy i kojarzymy z nią formularz. Formularz pojawia się podczas instalacji i monituje o różne rzeczy, w tym użytkownika/hasło. Następnie w klasie Installer nadpisujesz OnBeforeInstall i ustawiasz Me.ServiceProcessInstaller1.Username. – MattH

+0

I zmodyfikuj konto usługi Windows dla usługi WinService, która jeszcze istnieje? – Kiquenet

-1

Zazwyczaj będzie można przekazać te poświadczenia do klasy Instalatora. Możesz albo zakodować je na sztywno, albo przekazać jako argument wiersza poleceń. Drugie podejście jest bardziej odpowiednie, ale będzie wymagać niepotrzebnego analizowania argumentów wiersza poleceń.

proponuję wam trzecie podejście ...

<ShamelessPlug>

Cześć! Jestem programistą otwartej usługi źródłowej systemu Windows obsługującej architekturę o nazwie Daemoniq. I przekazanie poświadczeń za pomocą wiersza polecenia jest jednym z jego funkcji. Można go pobrać ze http://daemoniq.org

Aktualne funkcje obejmują:

  • pojemnik agnostyk lokalizacja obsługa poprzez CommonServiceLocator
  • ustawić właściwości wspólne usług takich jak ServiceName, displayName, opis i serviceStartMode poprzez app.config
  • uruchamianie wielu usług Windows na tym samym procesie
  • ustaw opcje odzyskiwania za pomocą app.config
  • zestaw usług zależało poprzez app.config mandatów proces obsługi
  • zestaw za pośrednictwem wiersza poleceń
  • instalowania, odinstalowywania usług debugowania za pomocą wiersza poleceń

</ShamelessPlug >

Twoje zdrowie!

+0

bezwstydna wtyczka do czegoś, czego nie ma już w pobliżu. – Grubsnik

4

Poniższe uzupełnienie do instalatora projektu przydzieli informacje logowania usługi podczas instalacji.

public ProjectInstaller() 
    { 
     InitializeComponent(); 

     serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.<account type>; 
     serviceProcessInstaller1.Username = <domain\userId>; 
     serviceProcessInstaller1.Password = <password>; 
    } 
+0

Jeśli nie określisz konta w kodzie i nie zostanie ustawiona właściwość ServiceProcessInstaller dla konta na wartość Użytkownik, podczas instalacji zostanie otwarte okno dialogowe, które umożliwi osobie wykonującej instalację określenie konta użytkownika domeny i hasła. – JohnL

Powiązane problemy