Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le modèle de programmation HTTP WEB WCF permet aux développeurs d’exposer les services Web Windows Communication Foundation (WCF) via des requêtes HTTP de base sans nécessiter SOAP. Le modèle de programmation HTTP WEB WCF repose sur le modèle d’extensibilité WCF existant. Il définit les classes suivantes :
Modèle de programmation :
Canaux et infrastructure de répartiteur :
Classes utilitaires et points d’extensibilité :
AspNetCacheProfileAttribute
Lorsqu’elle est appliquée à une opération de service AspNetCacheProfileAttribute, cela indique le profil de cache de sortie ASP .NET dans le fichier de configuration à utiliser pour mettre en cache les réponses de l’opération dans le cache de sortie ASP .NET. Cette propriété ne prend qu’un seul paramètre, le nom du profil de cache qui spécifie les paramètres de cache dans le fichier de configuration.
WebGetAttribute
L’attribut WebGetAttribute est utilisé pour marquer une opération de service comme une opération qui répond aux requêtes HTTP GET. Il s’agit d’un comportement d’opération passif (les IOperationBehavior méthodes ne font rien) qui ajoute des métadonnées à la description de l’opération. L’application du code WebGetAttribute n’a aucun effet, sauf si un comportement qui recherche ces métadonnées dans la description de l’opération (en particulier, le WebHttpBehavior) est ajouté à la collection de comportements du service. L’attribut WebGetAttribute accepte les paramètres facultatifs indiqués dans le tableau suivant.
| Paramètre | Descriptif |
|---|---|
BodyStyle |
Contrôle s’il faut encapsuler les demandes et les réponses envoyées à l’opération de service à laquelle l’attribut est appliqué. |
RequestFormat |
Contrôle la mise en forme des messages de requête. |
ResponseFormat |
Contrôle la mise en forme des messages de réponse. |
UriTemplate |
Spécifie le modèle d’URI qui contrôle les requêtes HTTP mappées à l’opération de service à laquelle l’attribut est appliqué. |
WebHttpBinding
La WebHttpBinding classe intègre la prise en charge de XML, JSON et des données binaires brutes à l’aide du WebMessageEncodingBindingElement. Il est composé d’un HttpsTransportBindingElement, d’un HttpTransportBindingElement et d’un objet WebHttpSecurity. WebHttpBinding est conçu pour être utilisé en conjonction avec WebHttpBehavior.
WebInvokeAttribute
L’attribut WebInvokeAttribute est similaire à celui-ci WebGetAttribute, mais il est utilisé pour marquer une opération de service comme une opération qui répond aux requêtes HTTP autres que GET. Il s’agit d’un comportement d’opération passif (les IOperationBehavior méthodes ne font rien) qui ajoute des métadonnées à la description de l’opération. L’application du code WebInvokeAttribute n’a aucun effet, sauf si un comportement qui recherche ces métadonnées dans la description de l’opération (en particulier, le WebHttpBehavior) est ajouté à la collection de comportements du service.
L’attribut WebInvokeAttribute accepte les paramètres facultatifs indiqués dans le tableau suivant.
| Paramètre | Descriptif |
|---|---|
BodyStyle |
Contrôle s’il faut encapsuler les demandes et les réponses envoyées à l’opération de service à laquelle l’attribut est appliqué. |
Method |
Spécifie la méthode HTTP à qui l’opération de service est mappée. |
RequestFormat |
Contrôle la mise en forme des messages de requête. |
ResponseFormat |
Contrôle la mise en forme des messages de réponse. |
UriTemplate |
Spécifie le modèle d’URI qui contrôle les requêtes GET mappées à l’opération de service à laquelle l’attribut est appliqué. |
UriTemplate
La UriTemplate classe vous permet de définir un ensemble d’URI structurellement similaires. Les modèles sont composés de deux parties, d’un chemin d’accès et d’une requête. Un chemin se compose d’une série de segments délimités par une barre oblique (/). Chaque segment peut avoir une valeur littérale, une valeur variable (écrite dans des accolades [{ }], contrainte de correspondre au contenu d’un segment exactement) ou d’un caractère générique (écrit en tant qu’astérisque [*], qui correspond au reste du chemin), qui doit apparaître à la fin du chemin. L’expression de requête peut être omise entièrement. S’il est présent, il spécifie une série non ordonnée de paires nom/valeur. Les éléments de l’expression de requête peuvent être des paires littérales ( ?x=2) ou des paires de variables ( ?x={value}). Les valeurs non couplées ne sont pas autorisées. UriTemplate est utilisé en interne par le modèle de programmation HTTP WEB WCF pour mapper des URI spécifiques ou des groupes d’URI aux opérations de service.
UriTemplateTable
La UriTemplateTable classe représente un ensemble associatif d’objets UriTemplate liés à un objet du choix du développeur. Il vous permet de faire correspondre les URI (Uniform Resource Identifier) candidats sur les modèles de l’ensemble et de récupérer les données associées aux modèles correspondants. UriTemplateTable est utilisé en interne par le modèle de programmation HTTP WEB WCF pour mapper des URI spécifiques ou des groupes d’URI aux opérations de service.
WebServiceHost
WebServiceHost étend la ServiceHost solution pour faciliter l’hébergement d’un service de style web non SOAP. Si WebServiceHost aucun point de terminaison n’est trouvé dans la description du service, il crée automatiquement un point de terminaison par défaut à l’adresse de base du service. Lors de la création d’un point de terminaison HTTP par défaut, la page d'aide HTTP et la fonctionnalité GET du WSDL (Web Services Description Language) sont également désactivées afin que le point de terminaison des métadonnées n'interfère pas avec le point de terminaison HTTP par défaut. WebServiceHost garantit également que tous les points de terminaison qui utilisent WebHttpBinding ont le composant requis WebHttpBehavior. Enfin, WebServiceHost configure automatiquement la liaison du point de terminaison pour qu’elle fonctionne avec les paramètres de sécurité IIS (Internet Information Services) associés lorsqu’il est utilisé dans un répertoire virtuel sécurisé.
WebServiceHostFactory
La WebServiceHostFactory classe est utilisée pour créer dynamiquement un WebServiceHost moment où un service est hébergé sous Internet Information Services (IIS) ou le service d’activation de processus Windows (WAS). Contrairement à un service auto-hébergé où l'application d'hébergement instancie le WebServiceHost, les services hébergés sous IIS ou WAS utilisent cette classe pour créer le WebServiceHost pour le service. La CreateServiceHost(Type, Uri[]) méthode est appelée lorsqu’une demande entrante pour le service est reçue.
WebHttpBehavior
La WebHttpBehavior classe fournit les formateurs nécessaires, les sélecteurs d’opérations, et cetera, requis pour la prise en charge du service de style Web au niveau de la couche Modèle de service. Cela est implémenté en tant que comportement de point de terminaison (utilisé conjointement avec le WebHttpBinding) et permet aux sélecteurs de mise en forme et aux sélecteurs d’opération d’être spécifiés pour chaque point de terminaison, ce qui permet à la même implémentation de service d’exposer à la fois les points de terminaison SOAP et POX.
Extension de WebHttpBehavior
WebHttpBehaviorest extensible à l’aide d’un certain nombre de méthodes virtuelles : GetOperationSelector(ServiceEndpoint), , GetReplyClientFormatter(OperationDescription, ServiceEndpoint)GetRequestClientFormatter(OperationDescription, ServiceEndpoint), GetReplyDispatchFormatter(OperationDescription, ServiceEndpoint), et GetRequestDispatchFormatter(OperationDescription, ServiceEndpoint). Les développeurs peuvent dériver une classe de WebHttpBehavior et remplacer ses méthodes pour personnaliser le comportement par défaut.
WebScriptEnablingBehavior est un exemple d'extension de WebHttpBehavior. WebScriptEnablingBehavior permet aux points de terminaison Windows Communication Foundation (WCF) de recevoir des requêtes HTTP à partir d’un client AJAX ASP.NET basé sur un navigateur. Le service AJAX utilisant HTTP POST est un exemple d’utilisation de ce point d’extensibilité.
Avertissement
Lors de l’utilisation du WebScriptEnablingBehavior, UriTemplate ne sont pas pris en charge dans les attributs WebGetAttribute ou WebInvokeAttribute.
WebHttpDispatchOperationSelector
La classe WebHttpDispatchOperationSelector utilise les classes UriTemplate et UriTemplateTable pour diriger les appels vers les opérations de service.
Compatibilité
Le modèle de programmation HTTP WEB WCF n’utilise pas de messages BASÉS sur SOAP et ne prend donc pas en charge les protocoles WS-*. Toutefois, vous pouvez exposer le même contrat par deux points de terminaison différents : l’un utilisant SOAP et l’autre n’utilisant pas SOAP. Pour accéder à un exemple, consultez Guide pratique : Exposer un contrat à des clients SOAP et web.
Sécurité
Étant donné que le modèle de programmation HTTP WEB WCF ne prend pas en charge les protocoles WS-* le seul moyen de sécuriser un service web basé sur le modèle de programmation HTTP WEB WCF consiste à exposer votre service à l’aide de SSL. Pour plus d’informations sur la configuration de SSL avec IIS 7.0, consultez Comment implémenter SSL dans IIS.