Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Les contrats de routage définissent les modèles de message que le service de routage peut traiter. Chaque contrat est sans type et permet au service de recevoir un message sans connaissance du schéma ou de l’action du message. Cela permet au service de routage de router les messages de manière générique sans configuration supplémentaire pour les spécificités des messages sous-jacents routés.
Contrats de routage
Étant donné que le service de routage accepte un objet de message WCF générique, la considération la plus importante lors de la sélection d’un contrat est la forme du canal qui sera utilisé lors de la communication avec les clients et les services. Lors du traitement des messages, le service de routage utilise des pompes de messages symétriques. En règle générale, la forme du contrat entrant doit correspondre à la forme du contrat sortant. Toutefois, il existe des cas où le répartiteur du modèle de service peut modifier les formes, par exemple lorsque le répartiteur convertit un canal duplex en canal de demande-réponse, ou supprime la prise en charge de session d’un canal lorsqu’il n’est pas nécessaire et n’est pas utilisé (c’est-à-dire, quand SessionMode.Allowed, convertissant un IInputSessionChannel en IInputChannel).
Pour prendre en charge ces pompes de messages, le service de routage fournit des contrats dans l’espace de nommage System.ServiceModel.Routing, à utiliser lors de la définition des points de terminaison de service par le service de routage. Ces contrats sont sans type, ce qui permet la réception d’un type de message ou d’une action, et permet au service de routage de gérer les messages sans connaissance du schéma de message spécifique. Pour plus d’informations sur les contrats utilisés par le service de routage, consultez Contrats de routage.
Les contrats fournis par le service de routage se trouvent dans l’espace System.ServiceModel.Routing de noms et sont décrits dans le tableau suivant.
| Contrat | Forme | Forme de canal |
|---|---|---|
| ISimplexDatagramRouter | SessionMode = SessionMode.Allowed AsyncPattern = vrai IsOneWay = vrai |
IInputChannel -> IOutputChannel |
| ISimplexSessionRouter | SessionMode = SessionMode.Required AsyncPattern = true IsOneWay = vrai |
IInputSessionChannel -> IOutputSessionChannel |
| IRequestReplyRouter | SessionMode = SessionMode.Autorisé AsyncPattern = true |
IReplyChannel -> IRequestChannel |
| IDuplexSessionRouter | SessionMode=SessionMode.Required CallbackContract=typeof(ISimplexSession) AsyncPattern = true IsOneWay = vrai TransactionFlow(TransactionFlowOption.Allowed) |
IDuplexSessionChannel -> IDuplexSessionChannel |