MsmqIntegrationBinding MsmqIntegrationBinding MsmqIntegrationBinding MsmqIntegrationBinding Class

Definition

The MsmqIntegrationBinding class maps Microsoft Message Queuing (MSMQ) messages to Windows Communication Foundation (WCF) messages.

public ref class MsmqIntegrationBinding : System::ServiceModel::MsmqBindingBase
public class MsmqIntegrationBinding : System.ServiceModel.MsmqBindingBase
type MsmqIntegrationBinding = class
    inherit MsmqBindingBase
Public Class MsmqIntegrationBinding
Inherits MsmqBindingBase
Inheritance
MsmqIntegrationBindingMsmqIntegrationBindingMsmqIntegrationBindingMsmqIntegrationBinding

Examples

The following configuration file snippet illustrates how to configure the MsmqIntegrationBinding binding on the client:

The following configuration file snippet illustrates how to configure the MsmqIntegrationBinding binding on the service:

[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
    [OperationContract(IsOneWay = true, Action = "*")]
    void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}
<ServiceContract(Namespace:="http:'Microsoft.ServiceModel.Samples")> _
<ServiceKnownType(GetType(PurchaseOrder))> _
Public Interface IOrderProcessor
    <OperationContract(IsOneWay:=True, Action:="*")> _
    Sub SubmitPurchaseOrder(ByVal msg As MsmqMessage(Of PurchaseOrder))
End Interface

The following code illustrates how to use the MsmqIntegrationBinding binding on the service programmatically:

   public class OrderProcessorService : IOrderProcessor
   {
       [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
       public void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> ordermsg)
       {
           PurchaseOrder po = (PurchaseOrder)ordermsg.Body;
           Random statusIndexer = new Random();
           po.Status = (OrderStates)statusIndexer.Next(3);
           Console.WriteLine("Processing {0} ", po);
       }

    // Host the service within this EXE console application.
public static void Main()
{
    // Get base address from appsettings in configuration.
	Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);

    // Create a ServiceHost for the CalculatorService type and provide the base address.
	using (ServiceHost serviceHost = new ServiceHost(typeof(IOrderProcessor), baseAddress))
	{
	// Open the ServiceHostBase to create listeners and start listening for messages.
		serviceHost.Open();

	// The service can now be accessed.
		Console.WriteLine("The service is ready.");
		Console.WriteLine("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
		Console.WriteLine("Press <ENTER> to terminate service.");
		Console.WriteLine();
		Console.ReadLine();

	// Close the ServiceHostBase to shutdown the service.
		serviceHost.Close();
	}
}

   }
Public Class OrderProcessorService
    Implements IOrderProcessor

    <OperationBehavior(TransactionScopeRequired:=True, TransactionAutoComplete:=True)> _
    Public Sub SubmitPurchaseOrder(ByVal ordermsg As MsmqMessage(Of PurchaseOrder)) Implements IOrderProcessor.SubmitPurchaseOrder
        Dim po As PurchaseOrder = ordermsg.Body
        Dim statusIndexer As New Random()
        po.Status = statusIndexer.Next(3)
        Console.WriteLine("Processing {0} ", po)
    End Sub
End Class

The following code illustrates how to use the MsmqIntegrationBinding binding on the client programmatically:

MsmqIntegrationBinding binding = new MsmqIntegrationBinding();
EndpointAddress address = new EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders");
ChannelFactory<IOrderProcessor> channelFactory = new ChannelFactory<IOrderProcessor>(binding, address);
IOrderProcessor channel = channelFactory.CreateChannel();

PurchaseOrder po = new PurchaseOrder();
po.customerId = "somecustomer.com";
po.poNumber = Guid.NewGuid().ToString();

PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.productId = "Blue Widget";
lineItem1.quantity = 54;
lineItem1.unitCost = 29.99F;

PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.productId = "Red Widget";
lineItem2.quantity = 890;
lineItem2.unitCost = 45.89F;

po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;


MsmqMessage<PurchaseOrder> ordermsg = new MsmqMessage<PurchaseOrder>(po);
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
    channel.SubmitPurchaseOrder(ordermsg);
    scope.Complete();
}
Console.WriteLine("Order has been submitted:{0}", po);
Dim binding As New MsmqIntegrationBinding()
Dim address As New EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders")
Dim channelFactory As New ChannelFactory(Of IOrderProcessor)(binding, address)
Dim channel As IOrderProcessor = channelFactory.CreateChannel()

Dim po As New PurchaseOrder()
po.customerId = "somecustomer.com"
po.poNumber = Guid.NewGuid().ToString()

Dim lineItem1 As New PurchaseOrderLineItem()
lineItem1.productId = "Blue Widget"
lineItem1.quantity = 54
lineItem1.unitCost = 29.99F

Dim lineItem2 = New PurchaseOrderLineItem()
lineItem2.productId = "Red Widget"
lineItem2.quantity = 890
lineItem2.unitCost = 45.89F

Dim lineItems(2) As PurchaseOrderLineItem
lineItems(0) = lineItem1
lineItems(1) = lineItem2

po.orderLineItems = lineItems

Dim ordermsg As MsmqMessage(Of PurchaseOrder) = New MsmqMessage(Of PurchaseOrder)(po)
Using scope As New TransactionScope(TransactionScopeOption.Required)
    channel.SubmitPurchaseOrder(ordermsg)
    scope.Complete()
End Using
Console.WriteLine("Order has been submitted:{0}", po)

Remarks

This binding can be used to enable WCF applications to send and receive messages to and from existing MSMQ applications that use COM, native C++ APIs or the types defined in the System.Messaging namespace.

Constructors

MsmqIntegrationBinding() MsmqIntegrationBinding() MsmqIntegrationBinding() MsmqIntegrationBinding()

Initializes a new instance of the MsmqIntegrationBinding class.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode) MsmqIntegrationBinding(MsmqIntegrationSecurityMode) MsmqIntegrationBinding(MsmqIntegrationSecurityMode) MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Initializes a new instance of the MsmqIntegrationBinding class by using the specified MsmqIntegrationSecurityMode.

MsmqIntegrationBinding(String) MsmqIntegrationBinding(String) MsmqIntegrationBinding(String) MsmqIntegrationBinding(String)

Initializes a new instance of the MsmqIntegrationBinding class from the settings of a specified configuration binding element.

Properties

CloseTimeout CloseTimeout CloseTimeout CloseTimeout

Gets or sets the interval of time provided for a connection to close before the transport raises an exception.

(Inherited from Binding)
CustomDeadLetterQueue CustomDeadLetterQueue CustomDeadLetterQueue CustomDeadLetterQueue

Gets or sets a URI that contains the location of the dead-letter queue for each application, where messages that have expired or that have failed transfer or delivery are placed.

(Inherited from MsmqBindingBase)
DeadLetterQueue DeadLetterQueue DeadLetterQueue DeadLetterQueue

Gets or sets an enumeration value that indicates the type of dead-letter queue to use.

(Inherited from MsmqBindingBase)
Durable Durable Durable Durable

Gets or sets a value that indicates whether the messages processed by this binding are durable or volatile.

(Inherited from MsmqBindingBase)
ExactlyOnce ExactlyOnce ExactlyOnce ExactlyOnce

Gets or sets a value that indicates whether messages processed by this binding are received exactly once.

(Inherited from MsmqBindingBase)
IBindingRuntimePreferences.ReceiveSynchronously IBindingRuntimePreferences.ReceiveSynchronously IBindingRuntimePreferences.ReceiveSynchronously IBindingRuntimePreferences.ReceiveSynchronously

Gets a value that indicates whether incoming requests can be handled more efficiently synchronously or asynchronously.

(Inherited from MsmqBindingBase)
MaxReceivedMessageSize MaxReceivedMessageSize MaxReceivedMessageSize MaxReceivedMessageSize

Gets or sets the maximum size, in bytes, for a message that is processed by this binding.

(Inherited from MsmqBindingBase)
MaxRetryCycles MaxRetryCycles MaxRetryCycles MaxRetryCycles

Gets or sets the maximum number of retry cycles to attempt delivery of messages to the receiving application.

(Inherited from MsmqBindingBase)
MessageVersion MessageVersion MessageVersion MessageVersion

Gets the message version used by clients and services configured with the binding.

(Inherited from Binding)
Name Name Name Name

Gets or sets the name of the binding.

(Inherited from Binding)
Namespace Namespace Namespace Namespace

Gets or sets the XML namespace of the binding.

(Inherited from Binding)
OpenTimeout OpenTimeout OpenTimeout OpenTimeout

Gets or sets the interval of time provided for a connection to open before the transport raises an exception.

(Inherited from Binding)
ReceiveContextEnabled ReceiveContextEnabled ReceiveContextEnabled ReceiveContextEnabled

Gets or sets a value that indicates whether the receive context behavior is requested.

(Inherited from MsmqBindingBase)
ReceiveErrorHandling ReceiveErrorHandling ReceiveErrorHandling ReceiveErrorHandling

Gets or sets an enumeration value that specifies how poison messages are handled.

(Inherited from MsmqBindingBase)
ReceiveRetryCount ReceiveRetryCount ReceiveRetryCount ReceiveRetryCount

Gets or sets the maximum number of immediate delivery attempts on a message that is read from the application queue.

(Inherited from MsmqBindingBase)
ReceiveTimeout ReceiveTimeout ReceiveTimeout ReceiveTimeout

Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

(Inherited from Binding)
RetryCycleDelay RetryCycleDelay RetryCycleDelay RetryCycleDelay

Gets or sets a value that indicates the time delay between retry cycles when attempting to deliver a message that cannot be delivered immediately.

(Inherited from MsmqBindingBase)
Scheme Scheme Scheme Scheme

Returns the scheme for this binding.

(Inherited from MsmqBindingBase)
Security Security Security Security

Gets the MsmqIntegrationSecurity that is associated with this binding.

SendTimeout SendTimeout SendTimeout SendTimeout

Gets or sets the interval of time provided for a write operation to complete before the transport raises an exception.

(Inherited from Binding)
SerializationFormat SerializationFormat SerializationFormat SerializationFormat

Gets or sets the serialization format to be used to serialize or deserialize the message.

TimeToLive TimeToLive TimeToLive TimeToLive

Gets or sets the interval of time that indicates how long the messages processed by this binding can be in the queue before they expire.

(Inherited from MsmqBindingBase)
UseMsmqTracing UseMsmqTracing UseMsmqTracing UseMsmqTracing

Gets or sets a value that indicates whether messages processed by this binding should be traced.

(Inherited from MsmqBindingBase)
UseSourceJournal UseSourceJournal UseSourceJournal UseSourceJournal

Gets or sets a value that indicates whether copies of messages processed by this binding should be stored in the source journal queue.

(Inherited from MsmqBindingBase)
ValidityDuration ValidityDuration ValidityDuration ValidityDuration

Gets or sets a value that specifies the duration a message will be locked by the receive context feature.

(Inherited from MsmqBindingBase)

Methods

BuildChannelFactory<TChannel>(BindingParameterCollection) BuildChannelFactory<TChannel>(BindingParameterCollection) BuildChannelFactory<TChannel>(BindingParameterCollection) BuildChannelFactory<TChannel>(BindingParameterCollection)

Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(Inherited from Binding)
BuildChannelFactory<TChannel>(Object[]) BuildChannelFactory<TChannel>(Object[]) BuildChannelFactory<TChannel>(Object[]) BuildChannelFactory<TChannel>(Object[])

Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by an object array.

(Inherited from Binding)
BuildChannelListener<TChannel>(BindingParameterCollection) BuildChannelListener<TChannel>(BindingParameterCollection) BuildChannelListener<TChannel>(BindingParameterCollection) BuildChannelListener<TChannel>(BindingParameterCollection)

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(Inherited from Binding)
BuildChannelListener<TChannel>(Object[]) BuildChannelListener<TChannel>(Object[]) BuildChannelListener<TChannel>(Object[]) BuildChannelListener<TChannel>(Object[])

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, Object[]) BuildChannelListener<TChannel>(Uri, Object[]) BuildChannelListener<TChannel>(Uri, Object[]) BuildChannelListener<TChannel>(Uri, Object[])

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, Object[]) BuildChannelListener<TChannel>(Uri, String, Object[]) BuildChannelListener<TChannel>(Uri, String, Object[]) BuildChannelListener<TChannel>(Uri, String, Object[])

Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection) CanBuildChannelFactory<TChannel>(BindingParameterCollection) CanBuildChannelFactory<TChannel>(BindingParameterCollection) CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the collection of binding parameters specified.

(Inherited from Binding)
CanBuildChannelFactory<TChannel>(Object[]) CanBuildChannelFactory<TChannel>(Object[]) CanBuildChannelFactory<TChannel>(Object[]) CanBuildChannelFactory<TChannel>(Object[])

Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the requirements specified by an object array.

(Inherited from Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection) CanBuildChannelListener<TChannel>(BindingParameterCollection) CanBuildChannelListener<TChannel>(BindingParameterCollection) CanBuildChannelListener<TChannel>(BindingParameterCollection)

Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the collection of binding parameters specified.

(Inherited from Binding)
CanBuildChannelListener<TChannel>(Object[]) CanBuildChannelListener<TChannel>(Object[]) CanBuildChannelListener<TChannel>(Object[]) CanBuildChannelListener<TChannel>(Object[])

Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the criteria specified in an array of objects.

(Inherited from Binding)
CreateBindingElements() CreateBindingElements() CreateBindingElements() CreateBindingElements()

Returns the binding elements in the basic profile stack.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetProperty<T>(BindingParameterCollection) GetProperty<T>(BindingParameterCollection) GetProperty<T>(BindingParameterCollection) GetProperty<T>(BindingParameterCollection)

Returns a typed object requested, if present, from the appropriate layer in the binding stack.

(Inherited from Binding)
GetType() GetType() GetType() GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ShouldSerializeName() ShouldSerializeName() ShouldSerializeName() ShouldSerializeName()

Returns whether the name of the binding should be serialized.

(Inherited from Binding)
ShouldSerializeNamespace() ShouldSerializeNamespace() ShouldSerializeNamespace() ShouldSerializeNamespace()

Returns whether the namespace of the binding should be serialized.

(Inherited from Binding)
ShouldSerializeSecurity() ShouldSerializeSecurity() ShouldSerializeSecurity() ShouldSerializeSecurity()

Gets a value that specifies whether security information should be serialized.

ToString() ToString() ToString() ToString()

Returns a string that represents the current object.

(Inherited from Object)

Applies to