C# 如何通过安装项目授予Windows服务对MSMQ队列的访问权限?

C# 如何通过安装项目授予Windows服务对MSMQ队列的访问权限?,c#,windows-services,installation,msmq,C#,Windows Services,Installation,Msmq,我有一个需要访问消息队列(MSMQ)的windows服务 队列本身是使用自动生成安装代码的MessageQueueInstaller组件创建的。然后,我使用一个标准的安装项目来部署它 该服务以相同的方式安装,使用相同的安装项目 当我启动服务时,它会立即停止,我的代码中出现以下异常 拒绝访问消息队列系统 我试过LocalService和NetworkService 我需要安装程序更改队列所需的权限还是需要更改服务拥有的权限 如何修改安装项目以进行此更改?导致此行为的原因之一是MSMQ是在网络组模式

我有一个需要访问消息队列(MSMQ)的windows服务

队列本身是使用自动生成安装代码的
MessageQueueInstaller
组件创建的。然后,我使用一个标准的安装项目来部署它

该服务以相同的方式安装,使用相同的安装项目

当我启动服务时,它会立即停止,我的代码中出现以下异常

拒绝访问消息队列系统

我试过LocalService和NetworkService

我需要安装程序更改队列所需的权限还是需要更改服务拥有的权限


如何修改安装项目以进行此更改?

导致此行为的原因之一是MSMQ是在网络组模式下安装的

尝试使用在计算机中具有管理员权限的域中的帐户。(这是唯一对我有用的东西)


您还可以为该用户对MQ进行Grand righst。打开“计算机管理器”并按此方式操作。

您应该更改队列上的权限。默认情况下,这些用户无权访问队列。

这听起来像是部署到软件的人员需要做的工作。我可以让安装项目执行这些操作吗?我知道的唯一方法是手动执行。我们使用scribesoft的产品。即使使用他们的安装程序,我也必须手动设置。对于那些可能关心的人,我做了以下操作:
messageQueue.SetPermissions(“Everyone”,MessageQueueAccessRights.FullControl)谢谢@Pure.Krome这也解决了我的问题:)哇!MSMQ-现在我还没有在。。年!我现在正在使用Azure队列,它们非常棒。