Checklist for using MsmqIntegrationBinding
The MsmqIntegrationBinding allows users to create WCF applications that send and receive messages to and from existing MSMQ applications that use System.Messaging or other MSMQ APIs.
- The operation contract should be one-way i.e. IsOneWay = true.
- Action property should be specified in the operation contract to indicate a service operation handles all messages that the service receives but cannot be directed to a service operation i.e. Action="*".
- The service operation should take a single argument MsmqMessage<T>, where T is a serializable type. You can use the [Serializable] attribute in front of the class definition or use a WCF data contract.
- Type T should be specified using the ServiceKnownType attribute on the service contract e.g. [ServiceKnownType(typeof(PurchaseOrder))].
[ServiceContract(Namespace = "https://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
[OperationContract(IsOneWay = true, Action = "*")]
void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}