<netMsmqBinding>

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

<configuration>
  <system.serviceModel>
    <bindings>
      <netMsmqBinding>

Синтаксис

<netMsmqBinding>
  <binding closeTimeout="TimeSpan"
           customDeadLetterQueue="Uri"
           deadLetterQueue="Uri"
           durable="Boolean"
           exactlyOnce="Boolean"
           maxBufferPoolSize="Integer"
           maxReceivedMessageSize="Integer"
           maxRetryCycles="Integer"
           name="String"
           openTimeout="TimeSpan"
           poisonMessageHandling="Disabled/EnabledIfSupported"
           queueTransferProtocol="Native/Srmp/SrmpSecure"
           receiveErrorHandling="Drop/Fault/Move/Reject"
           receiveTimeout="TimeSpan"
           receiveRetryCount="Integer"
           rejectAfterLastRetry="Boolean"
           retryCycleDelay="TimeSpan"
           sendTimeout="TimeSpan"
           timeToLive="TimeSpan"
           useActiveDirectory="Boolean"
           useMsmqTracing="Boolean"
           useSourceJournal="Boolean">
    <security>
      <message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
               clientCredentialType="None/Windows/UserName/Certificate/InfoCard" />
      <transport msmqAuthenticationMode="None/WindowsDomain/Certificate"
                 msmqEncryptionAlgorithm="RC4Stream/AES"
                 msmqProtectionLevel="None/Sign/EncryptAndSign"
                 msmqSecureHashAlgorithm="MD5/SHA1/SHA256/SHA512" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</netMsmqBinding>

Атрибуты и элементы

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

Attributes

Свойство Description
closeTimeout TimeSpan Значение, указывающее интервал времени, предоставленный для завершения операции закрытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
customDeadLetterQueue Универсальный код ресурса (URI), содержащий расположение очереди недоставленных сообщений для каждого приложения, в которых сообщения с истекшим сроком действия или сбой передачи или доставки.

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

URI, указанный с помощью CustomDeadLetterQueue схемы net.msmq.
deadLetterQueue DeadLetterQueue Значение, указывающее, какой тип очереди недоставленных писем следует использовать, если таковой имеется.

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

Для сообщений, exactlyOnce требующих exactlyOnce проверки подлинности (то есть атрибут имеет trueзначение ), этот атрибут по умолчанию используется для очереди недоставленных сообщений в MSMQ на уровне системы.

Для сообщений, требующих гарантий, этот атрибут по умолчанию используется null.
durable Логическое значение, указывающее, является ли сообщение устойчивым или переменным в очереди. Устойчивое сообщение выживает сбой диспетчера очередей, в то время как нестабильное сообщение не выполняется. Переменные сообщения полезны, если приложения требуют меньшей задержки и могут допускать случайные потерянные сообщения. Если для атрибута exactlyOnce задано значение true, сообщения должны быть устойчивыми. Значение по умолчанию — true.
exactlyOnce Логическое значение, указывающее, доставляется ли каждое сообщение, обработанное этой привязкой, только один раз. Затем отправитель будет уведомлен о сбоях доставки. В durable противном случае falseэтот атрибут игнорируется, и сообщения передаются без гарантии доставки. Значение по умолчанию — true. Дополнительные сведения см. в разделе ExactlyOnce.
maxBufferPoolSize Целое число, указывающее максимальный размер буферного пула для этой привязки. Значение по умолчанию — 8.
maxReceivedMessageSize Положительное целое число, определяющее максимальный размер сообщения в байтах, включая заголовки, обрабатываемые этой привязкой. Отправитель сообщения, превышающего это ограничение, получит ошибку SOAP. Получатель удаляет сообщение и создает запись события в журнале трассировки. Значение по умолчанию — 65536. Эта привязка к размеру сообщения предназначена для ограничения воздействия атак типа "отказ в обслуживании" (DoS).
maxRetryCycles Целое число, указывающее количество циклов повторных попыток, используемых функцией обнаружения подозрительных сообщений. Сообщение становится подозрительным, когда оно завершается сбоем всех попыток доставки всех циклов. Значение по умолчанию — 3. Дополнительные сведения см. в разделе MaxRetryCycles.
name Обязательный атрибут. Строка, содержащая имя конфигурации привязки. Это значение должно быть уникальным, так как оно используется в качестве идентификации привязки. Начиная с .NET Framework 4 привязки и поведение не требуются для имени. Дополнительные сведения о конфигурации по умолчанию и безымяных привязках и поведении см. в статье "Упрощенная конфигурация " и "Упрощенная конфигурация" для служб WCF.
openTimeout TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции открытия. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
QueueTransferProtocol Допустимое QueueTransferProtocol значение, указывающее транспорт канала связи очереди, используемый этой привязкой. MSMQ не поддерживает адресацию Active Directory при использовании протокола надежных сообщений SOAP. Таким образом, этот атрибут Srmp не должен иметь значение или Srmps если для атрибута useActiveDirectory задано значение true.
receiveErrorHandling ReceiveErrorHandling Значение, указывающее, как обрабатываются подозрительные и нераскрытые сообщения.
receiveRetryCount Целое число, указывающее максимальное количество раз, когда диспетчер очередей должен попытаться отправить сообщение перед передачей в очередь повторных попыток.
receiveTimeout TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции получения. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:10:00.
retryCycleDelay Значение TimeSpan, указывающее задержку времени между циклами повторных попыток при попытке доставки сообщения, которое не удалось доставить немедленно. Значение определяет только минимальное время ожидания, так как фактическое время ожидания может быть больше. Значение по умолчанию — 00:10:00. Дополнительные сведения см. в разделе RetryCycleDelay.
sendTimeout TimeSpan Значение, указывающее интервал времени, предоставленного для завершения операции отправки. Это значение должно быть больше или равно Zero. Значение по умолчанию — 00:01:00.
timeToLive Значение TimeSpan, указывающее, сколько времени сообщения действительны до истечения срока их действия и помещаются в очередь недоставленных писем. Значение по умолчанию — 1.00:00:00.

Этот атрибут установлен, чтобы убедиться, что сообщения, чувствительные к времени, не становятся устаревшими, прежде чем они обрабатываются принимающими приложениями. Сообщение в очереди, которая не используется принимающим приложением в течение указанного интервала времени, как сообщается, истекает. Просроченные сообщения отправляются в специальную очередь, называемую очередью недоставленных писем. Расположение очереди недоставленных букв задано атрибутом DeadLetterQueue или соответствующим значением по умолчанию на основе гарантий.
usingActiveDirectory Логическое значение, указывающее, следует ли преобразовать адреса очередей с помощью Active Directory.

Адреса очереди MSMQ могут состоять из имен путей или прямых имен форматирования. С именем прямого формата MSMQ разрешает имя компьютера с помощью DNS, NetBIOS или IP-адреса. С именем пути MSMQ разрешает имя компьютера с помощью Active Directory.

По умолчанию транспорт Windows Communication Foundation (WCF) преобразует URI очереди сообщений в прямое имя формата. Присвойте UseActiveDirectory свойству значение true, приложение может указать, что транспорт в очереди должен разрешать имя компьютера с помощью Active Directory, а не DNS, NetBIOS или IP-адреса.
useMsmqTracing Логическое значение, указывающее, следует ли отслеживать сообщения, обработанные этой привязкой. Значение по умолчанию — false. Если трассировка включена, сообщения отчетов создаются и отправляются в очередь отчетов каждый раз, когда сообщение покидает или прибывает на компьютер очереди сообщений.
useSourceJournal Логическое значение, указывающее копии сообщений, обработанных этой привязкой, должно храниться в исходном журнале. Значение по умолчанию — false.

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

Дочерние элементы

Элемент Description
<readerQuotas> Определяет ограничения сложности сообщений SOAP, которые могут обрабатываться конечными точками, настроенными с помощью этой привязки. Этот элемент имеет тип XmlDictionaryReaderQuotasElement.
<безопасность> Определяет параметры безопасности для привязки. Этот элемент имеет тип NetMsmqSecurityElement.

Родительские элементы

Элемент Description
<Привязки> Этот элемент содержит коллекцию стандартных и пользовательских привязок.

Замечания

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

Example

<configuration>
  <system.ServiceModel>
    <bindings>
      <netMsmqBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 deadLetterQueue="net.msmq://localhost/blah"
                 durable="true"
                 exactlyOnce="true"
                 maxReceivedMessageSize="1000"
                 maxRetries="11"
                 maxRetryCycles="12"
                 poisonMessageHandling="Disabled"
                 rejectAfterLastRetry="false"
                 retryCycleDelay="00:05:55"
                 timeToLive="00:11:11"
                 sourceJournal="true"
                 useMsmqTracing="true"
                 useActiveDirectory="true">
          <security>
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netMsmqBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

См. также