Quando si installa un host generico come servizio in NServiceBus, come faccio a fornire credenziali valide?

StackOverflow https://stackoverflow.com/questions/1487800

  •  18-09-2019
  •  | 
  •  

Domanda

Immaginate creo un file .bat nella directory seguente:

\ tronco \ Samples \ PubSub \

@ECHO OFF
ECHO installing Subscriber 1
Subscriber1\bin\Debug\NServiceBus.Host.exe /install
pause
ECHO installing Subscriber 2
Subscriber2\bin\Debug\NServiceBus.Host.exe  /install
pause
ECHO starting Subscriber services
net start Subscriber1.EndPointConfig_v1.0.0.0
net start Subscriber2.EndPointConfig_v1.0.0.0
pause

ottengo richiamato per un username e una password, ma usando le mie proprie credenziali ottengo un'eccezione nel seguente modo:

  

Si è verificata un'eccezione durante la fase di installazione.   System.ComponentModel.Win32Exception: Il nome di account non è valido o no ex   ist, oppure la password non è valida per il nome di account specificato

  1. quello credenziali posso passare per arrivare a questo lavoro?

  2. Posso configurare credenziali come argomenti della riga di comando per NServiceBus .Host.exe o l'esecuzione come 'account di sistema locale'?

Nota:

La mia ricerca suggerisce a tal punto che (2) può essere qualcosa che TopShelf supporta via è IInstallationConfiguration

che sto facendo questo su una macchina Vista con MSMQ installato già.

Il campione PubSub viene eseguito come previsto se ho appena eseguire le istanze di abbonati come applicazioni della console (vale a dire come questo):

@ECHO OFF
ECHO starting Subscriber 1
Subscriber1\bin\Debug\NServiceBus.Host.exe NServiceBus.Integration
pause
È stato utile?

Soluzione

  

(2). Posso configurare credenziali come argomenti della riga di comando per NServiceBus.Host.exe o eseguire come 'account di sistema locale'?

Dopo aver scavato in giro in TopShelf e NSB codice sorgente ho scoperto che questo è abbastanza semplice:

Per chiunque sia interessato - questo è qualcosa che il TopShelf implementa con IRunnerConfigurator .RunAsLocalSystem. NServiceBus chiama questo metodo se si aggiunge l'interfaccia marcatore ISpecify.ToRunAsLocalSystem

Quindi la risposta è quello di aggiungere ISpecify.ToRunAsLocalSystem alla lista delle interfacce implementate dalla classe EndpointConfig.

non ho trovato una risposta a:

  

(1). Quello credenziali posso passare per arrivare a questo lavoro?

Ma ora non ho davvero bisogno di uno ora come io sono abbastanza felice per eseguire i servizi come sistema locale.

Altri suggerimenti

Non sono sicuro se questo è rilevante, ma Matt Burton aggiunto il seguente commit di recente:

Ho ancora a provare, ma la mia domanda (1) può ora essere irrilevante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top