【问题标题】:Win Service getting permission denied to Message QueuingWin Service 获得拒绝消息队列的权限
【发布时间】:2010-09-16 23:25:55
【问题描述】:

我有一个无法启动的 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="InputQueue@newimp001" />
    </MessageEndpointMappings>
  </UnicastBusConfig>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>

【问题讨论】:

  • 用户需要查看、接收、获取属性等。可能有助于使用相同的凭据运行 MSMQ。

标签: c#-4.0 windows-services nservicebus


【解决方案1】:

找到了解决办法!

这是因为 NETWORK SERVICE 用户中包含的服务。 您需要为您访问的私有 MSMQ 设置权限 这样做

  1. 打开计算机管理
  2. 扩展消息队列
  3. 扩展专用队列
  4. 右键单击您使用的队列并选择属性
  5. 选择安全选项卡并为您的本地用户设置权限

【讨论】:

    猜你喜欢
    • 2019-07-10
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2012-11-05
    • 2011-03-29
    相关资源
    最近更新 更多