2010-09-16 10 views
12

Tengo un WinService que no puede iniciarse porque NServiceBus lanza "No se puede iniciar el servicio. System.Messaging.MessageQueueException (0x80004005): se deniega el acceso al sistema Message Queue Server."Servicio de Win para obtener denegación de Message Queue Server

Esto es en Windows 7

He tratado de ejecutar el servicio como: LocalSystem, LocalService y NetworkService

aquí es cómo Soy la creación de NServiceBus

private static IBus _serviceBus; 
    private static AuditMessageHandler _messageHandler; 

    public AuditQueueProcessor() 
    { 
     _messageHandler = new AuditMessageHandler(); 
     _serviceBus = Configure.With() 
      .Log4Net() 
      .DefaultBuilder() 
      .XmlSerializer() 
      .MsmqTransport() 
      .IsTransactional(true) 
      .PurgeOnStartup(false) 
      .UnicastBus() 
      .ImpersonateSender(false) 
      .LoadMessageHandlers() 
      .CreateBus() 
      .Start(); 
    } 

aquí se mi Config

<configuration> 
    <configSections> 
    <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core"/> 
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/> 

    </configSections> 

    <MsmqTransportConfig InputQueue="LoggerInputQueue" ErrorQueue="LoggerInputError" NumberOfWorkerThreads="1" MaxRetries="5"/> 

    <UnicastBusConfig> 
    <MessageEndpointMappings> 
     <add Messages="Truckstop2.Imports.Objects.AuditMessage,Truckstop2.Imports.Objects" Endpoint="[email protected]" /> 
    </MessageEndpointMappings> 
    </UnicastBusConfig> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> 
</configuration> 
+1

los EE.UU. Necesitará mirar, recibir, obtener propiedades, etc. Puede ayudar a ejecutar MSMQ con las mismas credenciales. –

Respuesta

31

¡Encontré la solución!

Se debe a que el servicio está incorporado en el usuario de NETWORK SERVICE. Es necesario establecer permisions al MSMQ privada su acceso hacer esto

  1. abierta Administración de equipos
  2. expanda Message Queuing
  3. Expandir Colas privadas
  4. click derecho en la cola de su utilizando y seleccione Propiedades
  5. seleccione la ficha y establecer permisos de seguridad a su usuario local
Cuestiones relacionadas