MessageQueueException Class


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

The exception that is thrown if a Microsoft Message Queuing internal error occurs.

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


public class MessageQueueException : ExternalException, ISerializable

System_CAPS_protmethodMessageQueueException(SerializationInfo, StreamingContext)

This API supports the product infrastructure and is not intended to be used directly from your code. Initializes a new instance of the MessageQueueException class with serialized data.


Gets a collection of key/value pairs that provide additional user-defined information about the exception.(Inherited from Exception.)


Gets the HRESULT of the error.(Inherited from ExternalException.)


Gets or sets a link to the help file associated with this exception.(Inherited from Exception.)


Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.(Inherited from Exception.)


Gets the Exception instance that caused the current exception.(Inherited from Exception.)


Gets a value that describes the Message Queuing error.(Overrides Exception.Message.)


Gets a value that indicates the error code associated with this exception.


Gets or sets the name of the application or the object that causes the error.(Inherited from Exception.)


Gets a string representation of the immediate frames on the call stack.(Inherited from Exception.)


Gets the method that throws the current exception.(Inherited from Exception.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.(Inherited from Exception.)


Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Populates a serialization information object with the data needed to serialize the MessageQueueException.(Overrides Exception.GetObjectData(SerializationInfo, StreamingContext).)


Gets the runtime type of the current instance.(Inherited from Exception.)


Creates a shallow copy of the current Object.(Inherited from Object.)


Returns a string that contains the HRESULT of the error.(Inherited from ExternalException.)


Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.(Inherited from Exception.)

Exceptions associated with the MessageQueueException class are generated by internal errors within Message Queuing that should be dealt with through your code.

Every exception consists of an error code and a text string that describes the source of the error. See the MessageQueueErrorCode class for a list of these error codes and their descriptions.

If a MessageQueue opens a queue with the sharedModeDenyReceive parameter set to true, any MessageQueue that subsequently tries to read from the queue generates a MessageQueueException exception because of a sharing violation. The same exception is thrown if a MessageQueue tries to access the queue in exclusive mode while another MessageQueue already has nonexclusive access to the queue.

System_CAPS_note Visual Basic Note

MessageQueueTransaction is threading-apartment–aware. Visual Basic sets the state of the main thread to STA, so you must apply the MTAThreadAttribute in the Main subroutine. Otherwise, sending a transactional message using another thread throws a MessageQueueException exception.

using System;
using System.Messaging;

namespace MyProject
	/// <summary>
	/// Provides a container class for the example.
	/// </summary>
	public class MyNewQueue

		// Provides an entry point into the application.
		// This example verifies existence and attempts to 
		// delete a queue.

		public static void Main()

			// Determine whether the queue exists.
			if (MessageQueue.Exists(".\\myQueue"))
					// Delete the queue.
				catch(MessageQueueException e)
					if(e.MessageQueueErrorCode == 
						Console.WriteLine("Access is denied. " + 
							"Queue might be a system queue.");

					// Handle other sources of MessageQueueException.




.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top