1

我有一个可以作为 Windows 服务或独立控制台运行的应用程序。它被远程部署在我客户的服务器上。当我远程桌面进入服务器时,我使用用于运行我的应用程序的 Windows 服务配置的相同域帐户。因此,将应用程序作为 Windows 服务或控制台运行绝对是在相同的凭据下完成的。或者是吗?问题是我的控制台抛出“拒绝访问消息队列系统”异常,而 Windows 服务对此没有任何问题。访问 MSMQ 系统的应用程序的所有功能都封装在一个 .dll 中,供 Windows 服务和控制台使用,所以同样应该没有区别。

关于我应该改变什么的任何想法?

4

2 回答 2

1

我制作了一个与 MSMQ 交互的 Windows 服务(一个愚蠢的数据交换应用程序,对安全性没有要求)。

我必须使用计算机管理中的消息队列属性窗格禁用未经身份验证的 RPC 调用才能使其正常工作。否则它会抛出System.Messaging.MessageQueueException (0x80004005): Access to Message Queuing system is denied.

该服务也在本地系统下运行(我记得默认情况下)

在此处输入图像描述

于 2014-09-18T13:58:11.873 回答
0

执行服务/控制台的用户应该有权访问 MSMQ。请检查您的实例是否属于这种情况。

于 2013-12-19T16:35:05.293 回答