Поделиться через


MSMQ в платформе .NET Compact Framework

Обновлен: Ноябрь 2007

.NET Compact Framework поддерживает обмен сообщениями (также известный как MSMQ) в Windows Embedded CE. MSMQ позволяет приложениям взаимодействовать с другими приложениями через сети и системы, которые могут быть временно отключены от сети.

Полный пример использования MSMQ в .NET Compact Framework см. в разделе Пример MSMQ Book Order Application.

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

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

MSMQ не встроена в операционную систему Windows Embedded CE на карманных персональных компьютерах, но можно установить ее, запустить службу, и создать приложения, которые ее используют. Следующий пример описывает, как получить компонент MSMQ:

  • Windows Mobile 2003 SDK обеспечивает MSMQ для карманных ПК под управлением Windows Mobile 2003 для карманных ПК.

  • Устройства, использующие программное обеспечение Windows Mobile версии 5.0 для карманных ПК или смартфонов, могут загрузить компонент MSMQ из Redistributable Server Components for Windows Mobile 5.0.

  • MSMQ не доступен для Windows Mobile 2003 для смартфонов.

  • MSMQ доступен для разработчиков устройств Windows Embedded CE, которые используют Microsoft Platform Builder.

Windows Mobile 2003 для карманных ПК не поддерживает основанный на HTTP протокол SOAP надежного обмена сообщениями (SRMP), так что следует использовать собственный MSMQ-протокол для отправки сообщений. SRMP поддерживается Windows Mobile версии 5.0.

.NET Compact Framework поддерживает только XmlMessageFormatter для сериализации и десериализации сообщений в и из очереди сообщений.

.NET Compact Framework не поддерживает следующие функции, так как они недоступны в Windows Embedded CE:

  • Множественные транзакции сообщений. Поддержка транзакций ограничена транзакциями с одиночным сообщением.

  • Чтение удаленной очереди.

  • Шифрование.

  • Безопасность основана на списке элементов управления доступом (ACL).

  • MQMail.

  • Общие очереди основаны на Active Directory.

Поскольку на устройствах отсутствует поддержка Active Directory, .NET Compact Framework не может определить, является ли удаленная очередь транзакционной. Чтобы отправить сообщение в удаленную транзакционную очередь, требуется следующее:

  1. Добавить ;XACTONLY в путь очереди в конструкторы MessageQueue, получающие строковый параметр пути, и добавить его в свойство Path.

  2. Укажите Single для MessageQueueTransactionType в методах Send, получающих этот параметр.

.NET Compact Framework не поддерживает следующие типы в пространстве имен System.Messaging:

AccessControlEntry

AccessControlEntryType

AccessControlList

ActiveXMessageFormatter

BinaryMessageFormatter

CryptographicProviderType

Cursor

EncryptionAlgorithm

EncryptionRequired

GenericAccessRights

HashAlgorithm

MessageLookupAction

MessageQueueAccessControlEntry

MessageQueueAccessRights

MessageQueueCriteria

MessageQueueEnumerator

MessageQueueInstaller

MessageQueuePermission

MessageQueuePermissionAttribute

MessageQueuePermissionEntry

MessageQueuePermissionEntryCollection

MessageQueueTransaction

MessageQueueTransactionStatus

MessagingDescriptionAttribute

PeekAction

QueueAccessMode

StandardAccessRights

Trustee

TrusteeType

См. также

Задачи

Практическое руководство. Использование очереди сообщений MSMQ в платформе .NET Compact Framework

Пример MSMQ Book Order Application

Пример MSMQ Book Order Application

Основные понятия

Сведения об очередях сообщений и о технологии обмена сообщениями