MsmqIntegrationBinding Класс

Определение

Класс MsmqIntegrationBinding сопоставляет сообщения Microsoft очереди сообщений (MSMQ) с сообщениями Windows Communication Foundation (WCF).

public ref class MsmqIntegrationBinding : System::ServiceModel::MsmqBindingBase
public class MsmqIntegrationBinding : System.ServiceModel.MsmqBindingBase
type MsmqIntegrationBinding = class
    inherit MsmqBindingBase
Public Class MsmqIntegrationBinding
Inherits MsmqBindingBase
Наследование
MsmqIntegrationBinding

Примеры

В следующем фрагменте файла конфигурации показано, как настроить привязку MsmqIntegrationBinding на клиенте:

В следующем фрагменте файла конфигурации показано, как настроить привязку MsmqIntegrationBinding в службе:

[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

В следующем коде показано, как программно использовать MsmqIntegrationBinding привязку в службе:

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

В следующем коде показано, как программно использовать привязку MsmqIntegrationBinding клиента:

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(1) 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)

Комментарии

Important

Вызов методов из этого класса с ненадежными данными является угрозой безопасности. Вызовите методы из этого класса только с доверенными данными. Дополнительные сведения см. в разделе Проверка всех входных данных.

Эту привязку можно использовать для того, чтобы приложения WCF могли отправлять и получать сообщения в существующие приложения MSMQ, использующие COM, собственные API C++ или типы, определенные в System.Messaging пространстве имен.

Конструкторы

Имя Описание
MsmqIntegrationBinding()

Инициализирует новый экземпляр класса MsmqIntegrationBinding.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Инициализирует новый экземпляр класса с помощью указанного MsmqIntegrationBindingMsmqIntegrationSecurityMode.

MsmqIntegrationBinding(String)

Инициализирует новый экземпляр MsmqIntegrationBinding класса из параметров указанного элемента привязки конфигурации.

Свойства

Имя Описание
CloseTimeout

Возвращает или задает интервал времени, предоставленный для закрытия соединения перед тем, как транспорт вызывает исключение.

(Унаследовано от Binding)
CustomDeadLetterQueue

Возвращает или задает универсальный код ресурса (URI), содержащий расположение очереди недоставленных писем для каждого приложения, в котором сообщения с истекшим сроком действия, или сбой передачи или доставки.

(Унаследовано от MsmqBindingBase)
DeadLetterQueue

Возвращает или задает значение перечисления, указывающее тип очереди недоставленных букв для использования.

(Унаследовано от MsmqBindingBase)
Durable

Возвращает или задает значение, указывающее, являются ли сообщения, обработанные этой привязкой, устойчивыми или переменными.

(Унаследовано от MsmqBindingBase)
ExactlyOnce

Возвращает или задает значение, указывающее, получаются ли сообщения, обработанные этой привязкой, ровно один раз.

(Унаследовано от MsmqBindingBase)
MaxReceivedMessageSize

Возвращает или задает максимальный размер сообщения в байтах, обрабатываемого этой привязкой.

(Унаследовано от MsmqBindingBase)
MaxRetryCycles

Возвращает или задает максимальное количество циклов повтора для попытки доставки сообщений в принимающее приложение.

(Унаследовано от MsmqBindingBase)
MessageVersion

Возвращает версию сообщения, используемую клиентами и службами, настроенными с привязкой.

(Унаследовано от Binding)
Name

Возвращает или задает имя привязки.

(Унаследовано от Binding)
Namespace

Возвращает или задает пространство имен XML привязки.

(Унаследовано от Binding)
OpenTimeout

Возвращает или задает интервал времени, предоставленный для открытия подключения, прежде чем транспорт вызывает исключение.

(Унаследовано от Binding)
ReceiveContextEnabled

Возвращает или задает значение, указывающее, запрашивается ли поведение контекста получения.

(Унаследовано от MsmqBindingBase)
ReceiveErrorHandling

Возвращает или задает значение перечисления, указывающее способ обработки подозрительных сообщений.

(Унаследовано от MsmqBindingBase)
ReceiveRetryCount

Возвращает или задает максимальное количество немедленных попыток доставки сообщения, считываемого из очереди приложения.

(Унаследовано от MsmqBindingBase)
ReceiveTimeout

Возвращает или задает интервал времени, в течение которого соединение не может оставаться неактивным, в течение которого сообщения приложения не будут получены до удаления.

(Унаследовано от Binding)
RetryCycleDelay

Возвращает или задает значение, указывающее задержку времени между циклами повторных попыток при попытке доставки сообщения, которое не может быть доставлено немедленно.

(Унаследовано от MsmqBindingBase)
Scheme

Возвращает схему для этой привязки.

(Унаследовано от MsmqBindingBase)
Security

Возвращает связанный MsmqIntegrationSecurity с этой привязкой объект.

SendTimeout

Возвращает или задает интервал времени, предоставленный для выполнения операции записи перед тем, как транспорт вызывает исключение.

(Унаследовано от Binding)
SerializationFormat

Возвращает или задает формат сериализации, используемый для сериализации или десериализации сообщения.

TimeToLive

Возвращает или задает интервал времени, указывающий, сколько времени сообщения, обработанные этой привязкой, могут находиться в очереди до истечения срока их действия.

(Унаследовано от MsmqBindingBase)
UseMsmqTracing

Возвращает или задает значение, указывающее, следует ли отслеживать сообщения, обработанные этой привязкой.

(Унаследовано от MsmqBindingBase)
UseSourceJournal

Возвращает или задает значение, указывающее, должны ли копии сообщений, обработанных этой привязкой, храниться в очереди исходного журнала.

(Унаследовано от MsmqBindingBase)
ValidityDuration

Возвращает или задает значение, указывающее длительность блокировки сообщения функцией контекста получения.

(Унаследовано от MsmqBindingBase)

Методы

Имя Описание
BuildChannelFactory<TChannel>(BindingParameterCollection)

Создает стек фабрики каналов на клиенте, который создает указанный тип канала и удовлетворяет функциям, указанным в коллекции параметров привязки.

(Унаследовано от Binding)
BuildChannelFactory<TChannel>(Object[])

Создает стек фабрики каналов на клиенте, который создает указанный тип канала и удовлетворяет функциям, указанным массивом объектов.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет функциям, указанным в коллекции параметров привязки.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Создает прослушиватель каналов в службе, которая принимает указанный тип канала и удовлетворяет указанным функциям.

(Унаследовано от Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Возвращает значение, указывающее, может ли текущая привязка создавать стек фабрики каналов на клиенте, который удовлетворяет коллекции указанных параметров привязки.

(Унаследовано от Binding)
CanBuildChannelFactory<TChannel>(Object[])

Возвращает значение, указывающее, может ли текущая привязка создавать стек фабрики каналов на клиенте, удовлетворяющим требованиям, заданным массивом объектов.

(Унаследовано от Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Возвращает значение, указывающее, может ли текущая привязка создать стек прослушивателя каналов в службе, которая удовлетворяет коллекции указанных параметров привязки.

(Унаследовано от Binding)
CanBuildChannelListener<TChannel>(Object[])

Возвращает значение, указывающее, может ли текущая привязка создавать стек прослушивателя каналов в службе, удовлетворяющей критериям, указанным в массиве объектов.

(Унаследовано от Binding)
CreateBindingElements()

Возвращает элементы привязки в базовом стеке профилей.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetProperty<T>(BindingParameterCollection)

Возвращает типизированный объект, запрошенный, если он присутствует, из соответствующего слоя в стеке привязки.

(Унаследовано от Binding)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ShouldSerializeName()

Возвращает, следует ли сериализовать имя привязки.

(Унаследовано от Binding)
ShouldSerializeNamespace()

Возвращает, следует ли сериализовать пространство имен привязки.

(Унаследовано от Binding)
ShouldSerializeSecurity()

Возвращает значение, указывающее, должна ли сериализоваться информация о безопасности.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IBindingRuntimePreferences.ReceiveSynchronously

Возвращает значение, указывающее, можно ли обрабатывать входящие запросы более эффективно синхронно или асинхронно.

(Унаследовано от MsmqBindingBase)

Применяется к