Поделиться через


Opening Remote Queues with Send Access

 

Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista

The following illustration shows what the local queue manager does when it receives a request to open a remote queue with send access. (This is the same process as for opening local queues, with the exception that the local queue manager does not check the access rights of the queue.

Note

When opening a queue to send messages, there is no contact with the remote computer.

<No Change>

When your application makes its call to open the remote queue for sending messages, the following actions are taken:

  • The MSMQ runtime contacts the local queue manager, sending a request to open the queue.

  • The local queue manager determines if the queue is public or private.

  • If the queue is public, the queue manager contacts the directory service to get the registered properties of the queue.

  • If the queue is private, the queue manager looks at the queue identifier (GUID) included in the format name to determine if the queue is local or remote.

  • When the queue manager determines that the queue is remote, the queue manager creates a queue object and returns a handle to this object (a queue handle) to the local runtime. Note that the local queue manager does not check the access rights of the queue.

  • The local runtime then passes the handle on to the calling application.

After this process is complete, you can send messages to the remote computer. An application can use the same queue handle to send multiple messages before closing the queue. When an application reuses a queue handle, all the steps needed to obtain the queue handle are skipped.

Because the local queue manager on the source computer does not check the access rights of a remote queue when you open it to send messages, the queue's access rights are checked by the queue manager on the target computer to prevent users without sufficient permissions from placing messages in the destination queue. When a queue is opened with send access, the queue manager on the computer where the queue resides always checks that the required access rights are allowed for the caller before placing a message in the queue.

For information on See
How MSMQ opens remote queues to peek at or retrieve messages. Opening Remote Queues with Peek or Receive Access
How MSMQ opens local queues. Opening Local Queues
What is required to open a queue. Opening Queues