MsmqIntegrationBinding Class
The MsmqIntegrationBinding class maps Microsoft Message Queuing (MSMQ) messages to Windows Communication Foundation (WCF) messages.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
System.ServiceModel.Channels.Binding
System.ServiceModel.MsmqBindingBase
System.ServiceModel.MsmqIntegration.MsmqIntegrationBinding
| Name | Description | |
|---|---|---|
![]() | MsmqIntegrationBinding() | Initializes a new instance of the MsmqIntegrationBinding class. |
![]() | MsmqIntegrationBinding(MsmqIntegrationSecurityMode) | Initializes a new instance of the MsmqIntegrationBinding class by using the specified MsmqIntegrationSecurityMode. |
![]() | MsmqIntegrationBinding(String) | Initializes a new instance of the MsmqIntegrationBinding class from the settings of a specified configuration binding element. |
| Name | Description | |
|---|---|---|
![]() | CloseTimeout | Gets or sets the interval of time provided for a connection to close before the transport raises an exception.(Inherited from Binding.) |
![]() | 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 | Gets or sets an enumeration value that indicates the type of dead-letter queue to use.(Inherited from MsmqBindingBase.) |
![]() | Durable | Gets or sets a value that indicates whether the messages processed by this binding are durable or volatile.(Inherited from MsmqBindingBase.) |
![]() | ExactlyOnce | Gets or sets a value that indicates whether messages processed by this binding are received exactly once.(Inherited from MsmqBindingBase.) |
![]() | MaxReceivedMessageSize | Gets or sets the maximum size, in bytes, for a message that is processed by this binding.(Inherited from MsmqBindingBase.) |
![]() | MaxRetryCycles | Gets or sets the maximum number of retry cycles to attempt delivery of messages to the receiving application.(Inherited from MsmqBindingBase.) |
![]() | MessageVersion | Gets the message version used by clients and services configured with the binding.(Inherited from Binding.) |
![]() | Name | Gets or sets the name of the binding.(Inherited from Binding.) |
![]() | Namespace | Gets or sets the XML namespace of the binding.(Inherited from Binding.) |
![]() | OpenTimeout | Gets or sets the interval of time provided for a connection to open before the transport raises an exception.(Inherited from Binding.) |
![]() | ReceiveContextEnabled | Gets or sets a value that indicates whether the receive context behavior is requested.(Inherited from MsmqBindingBase.) |
![]() | ReceiveErrorHandling | Gets or sets an enumeration value that specifies how poison messages are handled.(Inherited from MsmqBindingBase.) |
![]() | 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 | 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 | 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 | Returns the scheme for this binding.(Inherited from MsmqBindingBase.) |
![]() | Security | Gets the MsmqIntegrationSecurity that is associated with this binding. |
![]() | 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 | Gets or sets the serialization format to be used to serialize or deserialize the message. |
![]() | 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 | Gets or sets a value that indicates whether messages processed by this binding should be traced.(Inherited from MsmqBindingBase.) |
![]() | 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 | Gets or sets a value that specifies the duration a message will be locked by the receive context feature.(Inherited from MsmqBindingBase.) |
| Name | Description | |
|---|---|---|
![]() | 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[]) | 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) | 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[]) | 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) | 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[]) | 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) | 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) | 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[]) | 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[]) | 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) | 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[]) | 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) | 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[]) | 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() | Returns the binding elements in the basic profile stack.(Overrides Binding.CreateBindingElements().) |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetProperty<T>(BindingParameterCollection) | Returns a typed object requested, if present, from the appropriate layer in the binding stack.(Inherited from Binding.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ShouldSerializeName() | Returns whether the name of the binding should be serialized.(Inherited from Binding.) |
![]() | ShouldSerializeNamespace() | Returns whether the namespace of the binding should be serialized.(Inherited from Binding.) |
![]() | ShouldSerializeSecurity() | Gets a value that specifies whether security information should be serialized. |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | IBindingRuntimePreferences.ReceiveSynchronously | Gets a value that indicates whether incoming requests can be handled more efficiently synchronously or asynchronously.(Inherited from MsmqBindingBase.) |
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.
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); }
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(); } } }
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);
Available since 3.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




