MSMQ。谁可以创建本地队列(需要权限)?

时间:2017-10-20 06:19:41

标签: msmq

一个简单的问题,我无法找到答案:

使用MSMQ创建本地队列需要哪些用户和哪些权限?

我正在使用C#来打电话:

MessageQueue.Create(queuePath, transactional);

我曾说过一次错误:

Access to Message Queuing system is denied. 

我无法再次重现此错误。我尝试使用有限的帐户,例如“访客”#39;但我无法重现此错误。

1 个答案:

答案 0 :(得分:2)

根据我的发现,任何人都可以使用以下方式创建队列:

Access to Message Queuing system is denied. 

我的错误是我得到了

queue.SetPermissions(user, MessageQueueAccessRights.WriteMessage, AccessControlEntryType.Allow);

是因为我试图在使用类似于此的代码创建队列后直接设置队列的权限(这是导致错误的原因):

def function(file_count, results):

    # Get a string that is each item in result with a space between
    arg_string = ' '.join([str(i) for i in results])

    # Set up templates
    template_1 = '"<tr><td>"'
    template_2 = '"</td><td></td><td>"'
    template_3 = '"</td> <td></tr>"'

    # Create a variable to hold your lines
    lines = []

    # For every file in the range
    for i in range(0, file_count):
        # Make the Ex0, Ex1, Ex2, etc. string
        ex = 'Ex{}'.format(i)

        # Join all the templates and the ex variable and the arg_string
        result = ''.join([template_1, ex, template_2, arg_string, template_3])


        # Append the result to lines
        lines.append(result)

    # Return every item in lines joined by a newline
    return '\n'.join(lines)