Подтвердить что ты не робот

Разрешение на получение лицензии Win Service запрещено для очереди сообщений

У меня есть WinService, который не может запускаться, потому что NServiceBus выбрасывает "Сервис не может быть запущен. System.Messaging.MessageQueueException(0x80004005): доступ к системе очереди сообщений отклонен."

Это на Windows 7

Я попытался запустить службу как: LocalSystem, Localservice и NetworkService

вот как я настраиваю 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();
    }

вот моя конфигурация

<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>
4b9b3361

Ответ 1

Найден решение!

Это потому, что сервис включен в пользователе NETWORK SERVICE. Вам необходимо установить разрешения на приватную MSMQ для вашего доступа сделать это

  • открыть Управление компьютером
  • Развернуть очередь сообщений
  • Развернуть приватные очереди
  • щелкните правой кнопкой мыши по используемой вами очереди и выберите "Свойства"
  • выберите вкладку безопасности и установите разрешения для локального пользователя.