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


Обмен сообщениями в платформе .NET Compact Framework

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

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

Bb397842.alert_note(ru-ru,VS.90).gifПримечание.

WCF поддерживается в .NET Compact Framework, версия 3.5 и более поздних версиях.

Архитектура

Уровень сообщений WCF для .NET Compact Framework моделируется на базе стандартной архитектуры WCF для настольных компьютеров. Уровень сообщений поддерживается устройством и позволяет ему подключаться к существующей службе WCF на настольном компьютере. Уровень выполнения службы на устройстве отсутствует.

На следующем рисунке показан стек каналов, связанные с ним протоколы и элементы привязки WCF.

Уровень сообщений WCF в платформе .NET Compact Framework
Уровень сообщений для WCF в платформе .NET Compact Framework

Поддержка спецификации WS-Security версии 1.0 включает безопасную передачу сообщений по протоколу SOAP с использованием сертификатов X.509.

Класс Message построен на основе стандарта WS-Addressing.

Отличия по сравнению с реализацией для настольного компьютера

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

Уровень выполнения службы в платформе .NET Compact Framework не поддерживается. Поэтому, если необходимо подключиться к существующей службе WCF на настольном компьютере, действуют следующие правила.

  • Необходимо изменить некоторые настройки в файле Web.config. Дополнительные сведения см. в разделе Пошаговое руководство. Использование транспорта по протоколу HTTP.

  • Если требуется добавление поддержки устройства для контактов System.ServiceModel, можно воспользоваться средством ServiceModel Utility (NetCFSvcUtil.exe) для платформы .NET Compact Framework, чтобы создать прокси-сервер клиента WCF. Это средство реализует поддержку для многих параметров контактов в платформе .NET Compact Framework. Средство NetCFSvcUtil.exe входит в комплект Power Toys для .NET Compact Framework. Дополнительные сведения см. в разделе Power Toys for .NET Compact Framework.

  • Если средство NetCFSvcUtil не используется, можно воспользоваться средством WCF ServiceModel Desktop Utility (SvcUtil.exe) для заключительной обработки созданного кода. В этом случае вам необходимо удалить из созданного кода неподдерживаемые атрибуты System.ServiceModel. Дополнительные сведения об этих изменениях и соответствующий пример см. в разделе Пошаговое руководство. Использование транспорта по протоколу HTTP.

Кроме того, в полной версии .NET Framework поддерживаются подмножество типов сообщений WCF и члены.

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

Безопасность

Обмен сообщениями WCF в платформе .NET Compact Framework поддерживает безопасную передачу сообщений по протоколу SOAP, который соответствует подмножеству функций WS-Security и основан на сертификатах X.509. WS-Security — это прикладной уровень, который можно поместить в верхнюю часть любого поддерживаемого транспорта. В сообщениях WCF поддерживаются элементы привязки безопасности SecurityBindingElement и AsymmetricSecurityBindingElement. Для реализации средств безопасности необходимо в конструкторе в качестве параметра передать в объект ClientCredentials сертификаты X.509 для клиентского прокси-сервера WCF.

В платформе .NET Compact Framework для WCF также поддерживается безопасность транспортного уровня. Она включает в себя поддержку HttpsTransportBindingElement и BasicHttpSecurity.

Реализация безопасности WCF в платформе .NET Compact Framework имеет следующие отличия от реализации на настольном компьютере:

  • Поддерживается только подмножество WS-Security версии 1.0.

  • В связи с ограничениями операционной системы для класса SecurityAlgorithmSuite поддерживается только свойство Basic256Rsa15.

  • Нельзя зашифровать заголовки сообщений.

  • BasicHttpSecurityMode не поддерживается.

Bb397842.alert_note(ru-ru,VS.90).gifПримечание.

Во время расширенного периода летнего времени отправка сообщений, использующих функции безопасности сообщений, не будет выполнена из-за ошибки проверки правильности временной метки, если используется стандартная пятиминутная проверка правильности временной метки. Расширенный период летнего времени имеет место между вторым воскресеньем марта и первым воскресеньем апреля, а также между последним воскресеньем октября и первым воскресеньем ноября. Для решения данной проблемы установите обновление Daylight Saving Time (DST) 2007. Данная проблема не возникает на устройствах, работающих под управлением Windows Mobile 5.0 сборки 15096.3.0 или более поздней или Windows Mobile 6.0 или более поздней.

Развертывание

Библиотеки DLL обмена сообщениями WCF поставляются в CAB-файлах .NET Compact Framework. Управляемые сборки устанавливаются в глобальный кэш сборок.

Для устройства используются следующие библиотеки DLL обмена сообщениями WCF:

  • System.ServiceModel.dll

  • System.Runtime.Serialization.dll

Развертывание также включает в себя развертывание почтового транспорта WCF Exchange Server. Дополнительные сведения о развертывании устройства и настольного компьютера см. в разделе Почтовый транспорт WCF Exchange Server.

Ведение журнала

В .NET Framework на персональном компьютере WCF поддерживает три типа ведения журнала: трассировка, передача сообщений и журнал событий. В .NET Compact Framework WCF поддерживает только журнал трассировки для записи исключений кода, но не записывает предупреждения и сообщения об ошибках. Для настройки ведения журнала используется раздел реестра.

Для регистрации сведений WCF необходимо сначала включить ведение журнала для платформы .NET Compact Framework. Дополнительные сведения о том, как включить ведение журналов и журнал трассировки WCF, см. в разделе Пошаговое руководство. Создание файла журнала.

См. также

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

Сведения файла журнала

Другие ресурсы

Разработка Windows Communication Foundation и .NET Compact Framework