Al instalar un host genérico como un servicio en NServiceBus, ¿cómo puedo proporcionar credenciales válidas?

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

  •  18-09-2019
  •  | 
  •  

Pregunta

Imagínese que crear un archivo en el directorio siguiente:

\ trunk \ 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

consigo incitado por un nombre de usuario y contraseña, pero utilizando mis propias credenciales consigo una excepción de la siguiente manera:

  

Se produjo una excepción durante la fase de instalación.   System.ComponentModel.Win32Exception: El nombre de cuenta no es válido o no lo hace ex   ist, o la contraseña no son válidos para el nombre de cuenta especificado

  1. lo credenciales puedo pasar a conseguir que esto funcione?

  2. ¿Puedo configurar credenciales como argumentos de línea de comando para NServiceBus .Host.exe o ejecutar como 'cuenta del sistema local'?

Nota:

Mi investigación hasta ahora sugiere que (2) puede ser algo que TopShelf apoya a través de su IInstallationConfiguration

Estoy haciendo esto en una máquina de Vista con MSMQ instalado ya.

La muestra PubSub ejecuta como se esperaba si sólo ejecutar las instancias de abonado como aplicaciones de consola (es decir, como este):

@ECHO OFF
ECHO starting Subscriber 1
Subscriber1\bin\Debug\NServiceBus.Host.exe NServiceBus.Integration
pause
¿Fue útil?

Solución

  

(2). Es posible configurar las credenciales como argumentos de línea de comandos a NServiceBus.Host.exe o ejecutar como 'Cuenta del sistema local'?

Después de escarbar en TopShelf y NSB código fuente he descubierto que esto es bastante simple:

Para cualquier persona que esté interesado - esto es algo que el TopShelf implementa con IRunnerConfigurator .RunAsLocalSystem. NServiceBus llama a este método si se agrega la interfaz de marcador ISpecify.ToRunAsLocalSystem

Así que la respuesta es añadir ISpecify.ToRunAsLocalSystem a la lista de interfaces implementadas por la clase EndpointConfig.

no he encontrado una respuesta a:

  

(1). ¿Qué credenciales puedo pasar a conseguir que esto funcione?

Pero ahora realmente no necesito uno ahora como estoy bastante feliz para ejecutar los servicios como sistema local.

Otros consejos

No estoy seguro si esto es relevante, pero Matt Burton añade el siguiente commit recientemente:

Todavía tengo que probar, pero mi pregunta (1) ahora puede ser irrelevante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top