2010-09-16 20 views
12

J'ai un WinService qui ne peut pas démarrer car NServiceBus lance "Impossible de démarrer le service System.Messaging.MessageQueueException (0x80004005): L'accès au système Message Queuing est refusé."Service Win obtention de l'autorisation refusée à Message Queuing

C'est sous Windows 7

J'ai essayé d'exécuter le service comme: LocalSystem, LocalService et NetworkService

Voici comment je suis la mise en place 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(); 
    } 

ici est ma configuration

<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

er aura besoin de peek, recevoir, obtenir des propriétés, etc. Peut aider à exécuter MSMQ avec les mêmes informations d'identification. –

Répondre

31

Trouvé la solution!

C'est parce que le service est incorporé dans l'utilisateur du SERVICE RÉSEAU. Vous devez définir permisions au MSMQ privé votre accès pour ce faire

  1. ouvert Gestion de l'ordinateur
  2. Expand Message Queuing
  3. Expand Queues Private
  4. clic droit sur la file d'attente votre utilisant et sélectionnez Propriétés
  5. sélectionnez l'onglet de sécurité et définissez les autorisations pour votre utilisateur local