NetMsmqBinding Класс

Определение

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

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

Примеры

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

В первую очередь — файл конфигурации.

Затем — фактический код службы.

// Define a service contract.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IQueueCalculator
{
    [OperationContract(IsOneWay=true)]
    void Add(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Subtract(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Multiply(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Divide(double n1, double n2);
}
' Define a service contract. 
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface IQueueCalculator
    <OperationContract(IsOneWay:=True)> _
    Sub Add(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Subtract(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Multiply(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Divide(ByVal n1 As Double, ByVal n2 As Double)
End Interface
// Service class that implements the service contract.
// Added code to write output to the console window
public class CalculatorService : IQueueCalculator
{
    [OperationBehavior]
    public void Add(double n1, double n2)
    {
        double result = n1 + n2;
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Subtract(double n1, double n2)
    {
        double result = n1 - n2;
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Multiply(double n1, double n2)
    {
        double result = n1 * n2;
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Divide(double n1, double n2)
    {
        double result = n1 / n2;
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result);
    }
}
' Service class that implements the service contract.
' Added code to write output to the console window
Public Class CalculatorService
    Implements IQueueCalculator
    <OperationBehavior> _
    Public Sub Add(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Add
        Dim result As Double = n1 + n2
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Subtract(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Subtract
        Dim result As Double = n1 - n2
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Multiply(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Multiply
        Dim result As Double = n1 * n2
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Divide(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Divide
        Dim result As Double = n1 / n2
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result)
    End Sub
End Class
// This is the hosting application. This code can appear directly in the service class as well.
class HostApp
{
    // Host the service within this EXE console application.
    public static void Main()
    {
        // Get MSMQ queue name from appsettings in configuration.
        string queueName = ConfigurationManager.AppSettings["queueName"];

        // Create the transacted MSMQ queue if necessary.
        if (!MessageQueue.Exists(queueName))
            MessageQueue.Create(queueName, true);

        // Get the base address that is used to listen for WS-MetaDataExchange requests.
        // This is useful to generate a proxy for the client.
        string baseAddress = ConfigurationManager.AppSettings["baseAddress"];

        // Create a ServiceHost for the CalculatorService type.
        using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), new Uri(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("Press <ENTER> to terminate service.");
            Console.WriteLine();
            Console.ReadLine();

            // Close the ServiceHostBase to shutdown the service.
            serviceHost.Close();
        }
    }
}
' This is the hosting application. This code can appear directly in the service class as well.
Friend Class HostApp
    ' Host the service within this EXE console application.
    Public Shared Sub Main()
        ' Get MSMQ queue name from appsettings in configuration.
        Dim queueName As String = ConfigurationManager.AppSettings("queueName")

        ' Create the transacted MSMQ queue if necessary.
        If (Not MessageQueue.Exists(queueName)) Then
            MessageQueue.Create(queueName, True)
        End If

        ' Get the base address that is used to listen for WS-MetaDataExchange requests.
        ' This is useful to generate a proxy for the client.
        Dim baseAddress As String = ConfigurationManager.AppSettings("baseAddress")

        ' Create a ServiceHost for the CalculatorService type.
        Using serviceHost As New ServiceHost(GetType(CalculatorService), New Uri(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("Press <ENTER> to terminate service.")
            Console.WriteLine()
            Console.ReadLine()

            ' Close the ServiceHostBase to shutdown the service.
            serviceHost.Close()
        End Using
    End Sub
End Class

Комментарии

Привязка NetMsmqBinding обеспечивает поддержку организации очереди, используя очередь сообщений (MSMQ) как транспорт, и включает поддержку слабо связанных приложений, изоляции сбоев, распределения нагрузки, а также операций при отсутствии подключения к сети. Обсуждение этих функций см. в разделе "Общие сведения о очередях".

Это одна из предоставляемых системой привязок, предоставляемых Windows Communication Foundation (WCF). Рекомендуется определять привязку с помощью значений конфигурации, а не программным путем, за исключением некоторых сложных сценариев, в которых значения конфигурации задаются в процессе инициализации службы.

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

NetMsmqBinding()

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

NetMsmqBinding(NetMsmqSecurityMode)

Инициализирует новый экземпляр класса NetMsmqBinding, используя указанный режим безопасности.

NetMsmqBinding(String)

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

Свойства

CloseTimeout

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

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

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

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

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

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

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

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

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

ExactlyOnce

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

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

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

MaxReceivedMessageSize

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

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

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

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

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

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

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

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

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

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

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

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

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

ReaderQuotas

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

ReceiveContextEnabled

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

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

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

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

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

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

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

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

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

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

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

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

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

SendTimeout

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

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

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

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

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

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

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

ShouldSerializeSecurity()

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

ToString()

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

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

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

IBindingRuntimePreferences.ReceiveSynchronously

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

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

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