MsmqIntegrationBinding Класс

Определение

Класс MsmqIntegrationBinding сопоставляет сообщения 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)

Комментарии

Важно!

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

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

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

MsmqIntegrationBinding()

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

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

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

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)

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