IronPython:MessageQueue.Receive()异常的脚本

2024-05-12 22:59:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用IronPython访问MSMQ中的私有队列时遇到以下异常。异常是意外的,因为(1)当我使用IronPython控制台发送和接收消息时,在我的脚本中使用完全相同的命令时,(2)私有消息实际上存在(即“.\private$\sample”),以及(3)我已经将私有消息的“Everyone”用户的权限设置为完全控制。在

以下是我在ipy控制台和脚本中用于接收消息的代码片段:

import clr
clr.AddReference('System.Messaging')
from System.Messaging import *
queue_name = '.\\private$\sample'
queue = None
if MessageQueue.Exists(queue_name) = queue = MessageQueue(queue_name)
else : queue = MessageQueue.Create(queue_name)
print queue.Receive().Body   # As mentioned this works in ipy console, but not on script

以下是例外:

^{pr2}$

希望有人有主意。提前谢谢!在


Tags: samplenameimport脚本消息队列queueprivate
1条回答
网友
1楼 · 发布于 2024-05-12 22:59:47

我也遇到过类似的问题,根本原因是MSMQ的存储配额超出了!这似乎与错误信息无关,这使得它很难被发现。。。 要更改此配额,请右键单击“消息队列”(如果使用Windows server 2003,则从“计算机管理”中单击),然后单击“属性…”。。。(我不能发布图像,因为我是新用户),但在“属性”窗口中,您将在第一个选项卡中找到一个可编辑的存储限制字段。在

要检查服务器上当前使用的存储,请打开存储路径,然后检查其大小:(在同一属性窗口中打开“存储”选项卡,并获取存储文件夹的路径)如果配额大小与存储文件夹的大小相似,则这是问题的根本原因。在

如果您没有权限增加此配额限制,则应将用户添加到“消息队列属性”窗口的“安全”选项卡中。在

希望这能帮助。。。在

相关问题 更多 >