2010-09-16 8 views
12

Ho un WinService che non può essere avviato perché NServiceBus genera "Impossibile avviare il servizio. System.MessagingQueueException (0x80004005): accesso al sistema di Accodamento messaggi negato."Servizio Win ottenere l'autorizzazione negata a Accodamento messaggi

Questo è il Windows 7

ho cercato di eseguire il servizio come: LocalSystem, LocalService e NetworkService

ecco come lo sono la creazione di 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(); 
    } 

Ecco my 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

The us avremo bisogno di dare un'occhiata, ricevere, ottenere proprietà, ecc. Potrebbe aiutare a eseguire MSMQ con le stesse credenziali. –

risposta

31

Trovato la soluzione!

È perché il servizio è incorporato nell'utente SERVIZIO DI RETE. È necessario impostare i permessi al MSMQ privata tuo accesso per fare questo

  1. aperto Gestione computer
  2. Expand Message Queuing
  3. Espandere Code private
  4. tasto destro del mouse sulla coda vostra utilizzando e selezionare Proprietà
  5. selezionare la scheda di sicurezza e impostare le autorizzazioni per l'utente locale