No permission to access a private MSMQ

后端 未结 2 1002
故里飘歌
故里飘歌 2021-02-01 04:43

On an XP machine there is a private messagequeue that was created by a .net service. When I want to access this private queue in a VB6 application I keep getting an \"Access is

相关标签:
2条回答
  • 2021-02-01 05:11

    The solution posted here seems a bit of a hack. Perhaps this is necessary for Windows XP. I've encountered something similar using Windows 7 and used a different approach to solve this.

    Situation:

    • Program consists of C# code that creates a private transactional queue
    • Program is run as a windows service, running on the Local System account.
    • When the service is run, the private queue is created with the Local System account as the owner.
    • Even though I am administrator, I can't inspect the messages from the queue.

    Solution (this is for Windows 7):

    1. Run compmgmt.msc
    2. Open 'Services and Applications'
    3. Open 'Message Queues'
    4. Open 'Private Queues'
    5. Right-click the newly created queue
    6. Click 'Properties'
    7. Select the 'Security' tab
    8. Click 'Advanced'
    9. Select the 'Owner' tab
    10. Select 'Administrator'
    11. Select 'Permissions' tab
    12. Click 'Add'
    13. Type in the name of you account (e.g. 'Administrator')
    14. Click 'Check names'
    15. Click 'OK'
    16. Click 'OK'
    17. Click 'OK'

    Now you can access the messages in the queue and also purge the queue if you would like to.

    0 讨论(0)
  • 2021-02-01 05:18

    This can happen if the .NET Service removed the "Everyone" group from the permissions the private queue. Here are some steps you can take to resolve this:

    1. Stop the MSMQ Service

    2. Open the folder C:\WINDOWS\system32\msmq\storage\lqs

    3. Find the file in this folder that describes your queue -- (incommingQueue)

    4. Using notepad, open the lqs file for some other private queue that has good security permissions. (If you don't have any other private queues create one)

    5. Locate the line in the file that begins Security=....

    6. Copy the whole line to your clipboard (watch out for Word Wrap, this line will be quite long)

    7. Open the lqs file for your problem queue in your text editor

    8. Overwrite the Security=... line in this file with the contents of your clipboard

    9. Save the modified lqs file

    10. Start the MSMQ service

    You should find that the problem queue now has the same permissions as the queue whose security settings you copied at step 6 above.

    0 讨论(0)
提交回复
热议问题