How to browse and inspect MSMQ messages

Updated July 21, 2026

To browse Microsoft Message Queuing (MSMQ) messages, open a local or remote computer in QueueExplorer and select a queue. Messages load progressively into a grid, and selecting a row displays its body, extension, and message properties. Browsing uses MSMQ peek operations, so it does not remove messages from the queue.

MSMQ support is available in QueueExplorer for Windows only. The Windows computer running QueueExplorer must have access to the required Message Queuing services or connect through QueueProxy for MSMQ.

1. Connect QueueExplorer to MSMQ

Install QueueExplorer on Windows, create an MSMQ connection, and choose one of these connection methods:

  • Direct connection: use the standard MSMQ API and the Windows account running QueueExplorer.
  • Direct connection with different credentials: provide another local or domain account.
  • QueueProxy for MSMQ: run QueueProxy on the destination computer and connect through it when direct MSMQ networking, permissions, or firewall configuration is impractical.

QueueProxy also removes several direct-remote limitations because queue operations execute on the destination computer. See the MSMQ connection guide and QueueProxy guide for configuration details.

Use an account with Peek permission for inspection. Receive, Send, queue management, and permission changes require additional rights and should be granted only when the task needs them.

2. Select a queue and load a practical batch

Expand the local or remote computer, open the relevant queue group, and click the queue. QueueExplorer begins showing messages progressively. Set a practical load limit for a large production queue rather than selecting Show all immediately.

MSMQ messages displayed progressively in QueueExplorer
Select an MSMQ queue to peek at messages without removing them

Microsoft's MSMQ API distinguishes peek from receive: a peek returns a message without removing it, while receive removes it. QueueExplorer keeps browsing separate from Delete, Cut, Move, and other receive-based actions.

The list is a working view, not a frozen snapshot. Producers can add messages, consumers can remove them, and another QueueExplorer window can change the queue. Use Refresh before acting on a selection. MSMQ also places higher-priority nontransactional messages ahead of lower-priority messages, so arrival time alone does not always describe grid order.

Download QueueExplorer for Windows

Fully functional free trial

3. Inspect message bodies, extensions, and properties

Select a row to inspect the message body and extension. QueueExplorer can display formatted JSON and XML, text with multiple encodings, hexadecimal data, WCF content, and .NET binary or XML-serialized objects. The .NET viewers require the relevant application assemblies and should be used only with trusted types and data.

Add the fields relevant to the investigation as grid columns. Useful MSMQ properties include Label, Message ID, Correlation ID, AppSpecific, Body Type, Priority, Delivery, Sent Time, Arrived Time, Transaction ID, acknowledgement settings, journaling settings, time limits, source, destination, and custom extension data.

MSMQ message content inspected with the QueueExplorer .NET viewer
Inspect MSMQ content and properties without receiving the message

4. Sort, search, and filter the messages already loaded

Sort the working view by clicking a column, or filter it by body text, label, IDs, standard properties, or extension data. Sorting and filtering affect only QueueExplorer's display; they do not reorder or modify the queue.

The search operates on messages QueueExplorer has loaded. MSMQ is not a database with a server-side full-text index over queued bodies, so increase the load limit carefully if the target is not in the first batch.

QueueExplorer Professional can extract business values from JSON, XML, or text using JSON expressions, XPath, or regular expressions. Extracted values become sortable and filterable columns for fields such as order number, customer, event type, or retry code.

QueueExplorer custom column extracting an XPath value from MSMQ XML content
An XPath custom column exposes payload data in the message grid

Browse private, public, journal, subqueue, outgoing, and system messages

MSMQ location What it represents Important caution
Private or public queue Application messages waiting for consumers Public queues require Active Directory integration; queue transactional type affects sending
Queue or computer journal Copies retained when target or source journaling was requested Journals are not cleaned automatically and consume MSMQ storage quota
Subqueue A logical partition beneath one physical queue Messages cannot be sent directly to it; they are moved between the parent and its subqueues
Outgoing queue Messages waiting locally for transmission to another computer A backlog usually points to connectivity, destination, authentication, quota, or paused-state problems
Dead-letter system queue Undeliverable messages retained when negative source journaling was requested Transactional and nontransactional messages use separate dead-letter queues

MSMQ journal queues and subqueues have different semantics from ordinary destinations. Browsing them is safe, but restore, cleanup, and movement must respect those semantics.

Direct remote MSMQ limitations

When QueueExplorer connects directly to a remote computer through MSMQ, Windows does not expose every local capability:

  • QueueExplorer cannot determine whether a remote queue is transactional, so it asks you to declare the type before the first send.
  • New remote queues cannot be created and remote queue properties are unavailable.
  • Only summary information is available for remote outgoing queues.
  • Public queues are unavailable when local MSMQ is installed in Workgroup mode.

QueueProxy executes operations on the remote computer and avoids these direct-remote restrictions. Review the complete QueueExplorer MSMQ limitations before planning maintenance on remote queues.

A safer production inspection workflow

  1. Confirm the Windows computer, environment, and exact queue path or format name.
  2. Use an account with Peek permission only when the task is read-only.
  3. Start with a small load limit and avoid exposing sensitive bodies in screenshots or exports.
  4. Use Message ID together with stable application identifiers; do not identify a message by grid position alone.
  5. Pause competing consumers before selected-message changes when exact selection matters.
  6. Save important messages before deleting, moving, or editing them.
  7. Refresh and verify the queue, journals, outgoing queues, and dead-letter queues after a mutation.

Frequently asked questions

Does browsing an MSMQ queue remove messages?

No. QueueExplorer uses non-destructive peek operations for browsing. Delete, Cut, Move, Receive, and editing are separate operations that can remove or replace a stored message.

Why is the displayed message order not simple FIFO?

Nontransactional MSMQ messages are ordered by priority and then arrival. Transactional messages use MSMQ transaction ordering rules and have their priority set to Lowest.

Why can I see a message count but not every remote feature?

Direct remote MSMQ exposes less metadata and management functionality than a local connection. Use QueueProxy when the task needs local-equivalent behavior on the remote computer.

Related MSMQ guides

QueueExplorer: a better way to inspect and manage MSMQ

QueueExplorer for inspecting and managing MSMQ messages on Windows

See what is happening in MSMQ and resolve message problems without writing one-off tools. Browse application, journal, subqueue, outgoing, and dead-letter messages; inspect their contents; and manage local or remote MSMQ computers from one Windows desktop application. Try it free on Windows.

Download QueueExplorer for Windows     Learn more