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.
В первую очередь — файл конфигурации.
Затем — фактический код службы.
// 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) |