【发布时间】:2020-12-31 16:38:27
【问题描述】:
我正在使用一个使用 WCF 和 MSMQ 的旧版 c# 控制台应用程序。它已经有好几年了,是在 Windows 7 中运行的 VS2015 下开发的。它在那个环境中运行良好。
但是,当我简单地将项目复制到运行 VS2019 的 Windows 10 机器并在 VS2019 调试器中运行应用程序时,当它尝试对 WCF/MSMQ 消息进行排队时,会出现以下异常...
打开队列时出错:队列不存在或您没有足够的权限执行该操作。 (-1072824317, 0xc00e0003)。无法从队列发送或接收消息。确保 MSMQ 已安装并正在运行。还要确保可以使用所需的访问模式和授权打开队列。
队列确实存在。事实上,如果它不存在,应用程序实际上会创建它 - 它在第一次运行时就这样做了。
在消息队列下,关联队列已授予我的用户帐户的完全访问权限。
MSMQ 已安装。同样,应用程序本身创建了一个队列。
我正在“以管理员身份”运行 VS2019(因此正在调试的应用程序) - 这是另一个痛苦...
同样,这在较旧的 Windows 7 / VS2015 环境中运行良好。仅当项目复制到 Windows 10 / VS2019 环境时。显然在新环境中有一些设定……
有什么想法吗?
非常感谢!
-- 简陋
【问题讨论】:
-
如果你以管理员身份运行 Visual Studio 会怎样?
-
>> 如果您以管理员身份运行 Visual Studio 会怎样?上面说了,我是。必须这样做才能通过其他一些 Win32 API 调用。我得说......对于开发人员来说,这个环境被锁定得太多了......
-
现在您知道为什么每个人都使用 ServiceBus。不是永久解决方案,但如果您(预先创建)队列..当您尝试向其发送消息时会发生什么?