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 в службе:
[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) |