Messagerie dans le .NET Compact Framework

Mise à jour : novembre 2007

Le sous-ensemble de Windows Communication Foundation (WCF) implémenté dans le .NET Compact Framework fournit un modèle de programmation unifié pour générer des applications orientées message. Il permet aux développeurs de générer des applications de messagerie sécurisées qui fonctionnent sur de multiples plateformes et prennent en charge l'interaction avec les services WCF existants sur le bureau.

Remarque :

Le WCF est pris en charge dans .NET Compact Framework version 3.5 et versions ultérieures.

Architecture

La couche de messagerie WCF pour le .NET Compact Framework est modelée d'après l'architecture WCF de bureau standard. La couche de messagerie, qui est prise en charge sur le périphérique, permet au périphérique de se connecter à un service WCF existant sur le bureau. La couche runtime du service n'est pas présente sur le périphérique.

L'illustration suivante montre la pile de canal, les protocoles associés et les éléments de liaison WCF.

Couche de messagerie WCF sur le .NET Compact Framework

Couche de messagerie pour WCF dans .NET Compact Framework

La prise en charge de la spécification WS-Security version 1.0 inclut la sécurité des messages SOAP à l'aide de certificats X.509.

La classe Message est basée sur le standard WS-Addressing.

Différences avec l'implémentation de bureau

Le .NET Compact Framework ne prend pas en charge le jeu complet de protocoles et de liaisons pris en charge sur le bureau. Consultez le diagramme d'architecture dans la section précédente pour plus d'informations sur les protocoles et les liaisons spécifiques pris en charge.

La couche runtime du service n'est pas prise en charge sur le .NET Compact Framework. En conséquence, si vous souhaitez vous connecter à un service WCF existant sur le bureau, les considérations suivantes s'appliquent :

  • Quelques paramètres dans le fichier Web.config doivent être modifiés. Pour plus d'informations, consultez Comment : utiliser le transport HTTP.

  • Si vous souhaitez ajouter la prise en charge de périphériques pour les contrats System.ServiceModel, vous pouvez utiliser l'outil ServiceModel Utility (NetCFSvcUtil.exe) du .NET Compact Framework pour générer un proxy de client WCF. Cet outil implémente la prise en charge pour de nombreux paramètres de contrat dans le .NET Compact Framework. NetCFSvcUtil.exe est inclus dans les Power Toys pour .NET Compact Framework. Pour plus d'informations, consultez Power Toys pour le .NET Compact Framework (en anglais).

  • Si vous n'utilisez pas NetCFSvcUtil, vous pouvez utiliser l'outil WCF ServiceModel Desktop Utility (SvcUtil.exe) et post-traiter le code généré. Dans ce scénario, vous devez supprimer les attributs System.ServiceModel non pris en charge du code généré. Pour plus d'informations sur ces modifications et un exemple, consultez Comment : utiliser le transport HTTP.

En outre, un sous-ensemble des types et des membres de messagerie WCF dans le .NET Framework complet est pris en charge.

La section suivante décrit les différences qui sont spécifiques aux fonctionnalités de sécurité WCF.

Sécurité

La messagerie WCF dans le .NET Compact Framework prend en charge la sécurité des messages SOAP, qui correspond à un sous-ensemble des fonctionnalités WS-Security et qui est basée sur les certificats X.509. WS-Security est une couche application que vous pouvez placer sur tout transport pris en charge. Les éléments de liaison de sécurité pris en charge dans la messagerie WCF sont SecurityBindingElement et AsymmetricSecurityBindingElement. Pour implémenter des fonctionnalités de sécurité, vous devez transmettre les certificats X.509 à l'intérieur d'un objet ClientCredentials en tant que paramètre dans le constructeur pour le proxy de client WCF.

La sécurité au niveau transport est également prise en charge pour le WCF dans le .NET Compact Framework. Cela comprend la prise en charge de HttpsTransportBindingElement et de BasicHttpSecurity.

L'implémentation de la sécurité WCF dans le .NET Compact Framework diffère de l'implémentation sur le bureau, comme suit :

  • Seul un sous-ensemble de WS-Security version 1.0 est pris en charge.

  • Pour la classe SecurityAlgorithmSuite, seule la propriété Basic256Rsa15 est prise en charge à cause des contraintes du système d'exploitation.

  • Les en-tête de message ne peuvent pas être chiffrés.

  • BasicHttpSecurityMode n'est pas pris en charge.

Remarque :

À l'heure d'été, les messages sortants qui utilisent la sécurité des messages échouent à cause d'une erreur dans la validation d'horodatage lorsque la validation d'horodatage par défaut de cinq minutes est appliquée. L'heure d'été entre en application entre le deuxième dimanche de mars et le premier dimanche d'avril, et prend fin entre le dernier dimanche d'octobre et le premier dimanche de novembre. Pour résoudre ce problème, installez la mise à jour Daylight Saving Time (DST) 2007. Cela ne s'applique pas aux périphériques qui exécutent Windows Mobile 5.0 build 15096.3.0 et versions ultérieures, ou Windows Mobile 6.0 et versions ultérieures.

Déploiement

Les DLL de la messagerie WCF sont fournies dans les fichiers CAB du .NET Compact Framework . Les assemblys managés sont installés dans le Global Assembly Cache.

Les DLL de la messagerie WCF pour le périphérique incluent les éléments suivants :

  • System.ServiceModel.dll

  • System.Runtime.Serialization.dll

Le déploiement inclut également le déploiement du transport de messagerie Exchange Server WCF. Pour plus d'informations sur le déploiement sur les périphériques et le bureau, consultez Transport de messagerie Exchange Server WCF.

Journalisation

Le WCF sur le .NET Framework de bureau prend en charge trois types de journalisation : trace (suivi), messagerie et enregistrement des événements. WCF sur le .NET Compact Framework prend en charge uniquement la journalisation du suivi pour suivre les exceptions de code, mais ne journalise pas les messages d'avertissement et d'erreur. Une clé de Registre est utilisée pour configurer la journalisation.

Pour journaliser les informations de WCF, vous devez activer d'abord la journalisation pour le .NET Compact Framework. Pour plus d'informations sur l'activation de la journalisation et du journal des traces WCF, consultez Comment : créer des fichiers journaux.

Voir aussi

Concepts

Informations sur le fichier journal

Autres ressources

Développement Windows Communication Foundation (WCF) et le .NET Compact Framework