MessageQueue.PeekByLookupId Method (MessageLookupAction, Int64)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Introduced in MSMQ 3.0. Peeks at a specific message from the queue. The message can be specified by a lookup identifier or by its position at the front or end of the queue.

Namespace:   System.Messaging
Assembly:  System.Messaging (in System.Messaging.dll)

public Message PeekByLookupId(
	MessageLookupAction action,
	long lookupId


Type: System.Messaging.MessageLookupAction

One of the MessageLookupAction values, specifying how the message is read in the queue. Specify one of the following:

MessageLookupAction.Current: Peeks at the message specified by lookupId.

MessageLookupAction.Next: Peeks at the message following the message specified by lookupId.

MessageLookupAction.Previous: Peeks at the message preceding the message specified by lookupId.

MessageLookupAction.First: Peeks at the first message in the queue. The lookupId parameter must be set to 0.

MessageLookupAction.Last: Peeks at the last message in the queue. The lookupId parameter must be set to 0.

Type: System.Int64

The LookupId of the message to peek at, or 0. 0 is used when accessing the first or last message in the queue.

Return Value

Type: System.Messaging.Message

The Message specified by the action and lookupId parameters passed in.

Exception Condition

MSMQ 3.0 is not installed.


The message with the specified lookupId could not be found.


An error occurred when accessing a Message Queuing method.


The action parameter is not one of the MessageLookupAction members.

Use this method to read a message with a known lookup identifier without removing it from the queue. This method throws an exception immediately if the message is not in the queue.

The LookupId property of a message is unique to the queue where the message resides, so there will be at most one message in the queue that matches the given lookupId parameter.

To read a message with a specified identifier and remove it from the queue, use the M:System.Messaging.MessageQueue.ReceiveByLookupId method.

The following table shows whether this method is available in various Workgroup modes.

Workgroup mode


Local computer


Local computer and direct format name


Remote computer


Remote computer and direct format name


.NET Framework
Available since 2.0
Return to top